require = function r(s, a, l) {
    function c(i, t) {
        if (!a[i]) {
            if (!s[i]) {
                var e = "function" == typeof require && require;
                if (!t && e) return e(i, !0);
                if (h) return h(i, !0);
                var n = new Error("Cannot find module '" + i + "'");
                throw n.code = "MODULE_NOT_FOUND", n
            }
            var o = a[i] = {exports: {}};
            s[i][0].call(o.exports, function (t) {
                var e = s[i][1][t];
                return c(e || t)
            }, o, o.exports, r, s, a, l)
        }
        return a[i].exports
    }

    for (var h = "function" == typeof require && require, t = 0; t < l.length; t++) c(l[t]);
    return c
}({
    AboutView: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "a6ca5lIN1hFpZ7g4k6fz5ST", "AboutView"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = cc._decorator, o = n.ccclass, r = n.property, s = function (e) {
            function t() {
                var t = null !== e && e.apply(this, arguments) || this;
                return t.background = null, t.closeButton = null, t.onDummy = function (t) {
                }, t.onCloseClicked = function () {
                    t.hide()
                }, t
            }

            return __extends(t, e), t.prototype.start = function () {
                this.addEventListeners()
            }, t.prototype.addEventListeners = function () {
                this.closeButton.node.on(cc.Node.EventType.TOUCH_END, this.onCloseClicked), this.background.on(cc.Node.EventType.TOUCH_END, this.onDummy)
            }, t.prototype.show = function () {
                this.anim = this.node.getComponent(cc.Animation), this.node.active = !0, this.anim.play("AboutScreen_Intro")
            }, t.prototype.hide = function () {
                this.anim.play("AboutScreen_Outro")
            }, t.prototype.outroAnimationDone = function () {
                this.node.active = !1
            }, __decorate([r(cc.Node)], t.prototype, "background", void 0), __decorate([r(cc.Button)], t.prototype, "closeButton", void 0), t = __decorate([o], t)
        }(cc.Component);
        i.default = s, cc._RF.pop()
    }, {}],
    AnalyticsHBI: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "7b02bjLeOROHp+9A7OIuFKB", "AnalyticsHBI"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = cc._decorator, o = n.ccclass, r = (n.property, function () {
            function t() {
            }

            return t.logEvent = function (t, e, i, n, o) {
                for (var r = ["st1", "st2", "st3", "name", "value"], s = {
                    hub: !1,
                    id_type: "facebook"
                }, a = 0; a < arguments.length; a++) null != arguments[a] && "" != arguments[a] && (s[r[a]] = arguments[a]);
                var l = this.getCommonParameters(), c = this.getSpecificParameters(n), h = Object.assign(s, l, c),
                    u = new cc.Event.EventCustom("eventHBI", !0);
                u.setUserData({eventData: h}), cc.systemEvent.dispatchEvent(u)
            }, t.getCommonParameters = function () {
                var t = this;
                return t.gameMainComponent = cc.find("Canvas").getComponent("GameMain"), {
                    id: window.FBInstant ? window.FBInstant.player.getID() : "undefined",
                    baskets: t.gameMainComponent.sunkCount,
                    max_combo: t.gameMainComponent.maxComboCount,
                    taps: t.gameMainComponent.clickCount,
                    best_score: t.gameMainComponent.highscore,
                    games: t.gameMainComponent.gameOverScreen.retryCount
                }
            }, t.getSpecificParameters = function (t) {
                var e = {};
                if (this.gameMainComponent = cc.find("Canvas").getComponent("GameMain"), "basket_hit" === t) {
                    var i = this.gameMainComponent.timerCountDown.getTimeRemaining();
                    null != e && "" != e && (e.time = i)
                } else if ("launch_opened" === t && window.FBInstant) {
                    var n = window.FBInstant.player.getName();
                    null != n && "" != n && (e.first_name = n)
                }
                return e
            }, t = __decorate([o], t)
        }());
        i.default = r, cc._RF.pop()
    }, {}],
    Analytics: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "4bb04vYJolG67YNcd4lOqZW", "Analytics"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = function () {
            function t() {
            }

            return t.logEvent = function (t, e, i) {
                void 0 === e && (e = null), void 0 === i && (i = null), window.FBInstant && window.FBInstant.logEvent(t, e, i)
            }, t
        }();
        i.default = n, cc._RF.pop()
    }, {}],
    ArrayExtra: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "024e7/QAatAKrp/RQMqsDSP", "ArrayExtra"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = function () {
            function t() {
            }

            return t.convertObjToArr = function (t) {
                if (Array.isArray(t)) return t;
                var e = [];
                return e.push(t), e
            }, t.pushUnique = function (t, e) {
                for (var i = 0; i < t.length; i++) {
                    if (t[i] === e) return t
                }
                return t.push(e), t
            }, t.prototype.shuffle = function (t) {
                return t
            }, t.orderBy = function (t, i) {
                return t.sort(function (t, e) {
                    return t[i] < e[i] ? -1 : t[i] > e[i] ? 1 : 0
                })
            }, t
        }();
        i.default = n, cc._RF.pop()
    }, {}],
    AudioManager: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "c8ddaFNMJ9AEIM1F1IoE5AH", "AudioManager"), Object.defineProperty(i, "__esModule", {value: !0});
        var a = t("gsap"), n = function () {
            function s() {
            }

            return s.init = function () {
                var i = this;
                return new Promise(function (t, e) {
                    window.FBInstant ? i.initFromFBInstant().then(function () {
                        t()
                    }) : (i.initFromLocalStorage(), t())
                })
            }, s.initFromFBInstant = function () {
                var n = this;
                return new Promise(function (i, t) {
                })
            }, s.createFBInstantAudioSettings = function () {
                var i = this;
                return new Promise(function (t, e) {
                    window.FBInstant.player.setDataAsync({
                        audioSettings: {
                            musicVolume: i.musicVolume,
                            sfxVolume: i.sfxVolume
                        }
                    }).then(function () {
                        t()
                    })
                })
            }, s.initFromLocalStorage = function () {
                this.musicVolume = cc.sys.localStorage.getItem(s.MUSIC_VOLUME_STORAGE_NAME) || 1, this.sfxVolume = cc.sys.localStorage.getItem(s.EFFECT_VOLUME_STORAGE_NAME) || 1
            }, s.storeAudioSettings = function () {
                var i = this;
                return new Promise(function (t, e) {
                    window.FBInstant ? window.FBInstant.player.setDataAsync({
                        audioSettings: {
                            musicVolume: i.musicVolume,
                            sfxVolume: i.sfxVolume
                        }
                    }).then(function () {
                        t()
                    }) : (cc.sys.localStorage.setItem(s.MUSIC_VOLUME_STORAGE_NAME, i.musicVolume), cc.sys.localStorage.setItem(s.EFFECT_VOLUME_STORAGE_NAME, i.sfxVolume), t())
                })
            }, s.setAudioSettings = function () {
                this.setMusicVolume(this.musicVolume), this.setSfxVolume(this.sfxVolume)
            }, s.playEffect = function (t, e, i) {
                if (t) {
                    var n = cc.audioEngine.play(t, e, i * s.sfxVolume);
                    return e && this.effectIds.push(n), n
                }
                return -1
            }, s.playMusic = function (t, e, i) {
                if (0 < s.musicIds.length) {
                    var n = s.musicIds[0];
                    cc.audioEngine.stop(n), s.musicIds = []
                }
                if (t) {
                    var o = i * s.musicVolume, r = cc.audioEngine.play(t, e, o);
                    return s.musicIds.push(r), r
                }
                return -1
            }, s.stop = function (t) {
                cc.audioEngine.stop(t)
            }, s.setCurrentTime = function (t, e) {
                cc.audioEngine.setCurrentTime(t, e)
            }, s.setMusicVolume = function (t) {
                null != s.musicIds[0] && cc.audioEngine.setVolume(s.musicIds[0], t * s.musicVolume)
            }, s.setSfxVolume = function (t) {
                s.sfxVolume = t;
                for (var e = 0; e < this.effectIds.length; e++) {
                    var i = this.effectIds[e];
                    cc.audioEngine.setVolume(i, t)
                }
            }, s.setIDVolume = function (t, e) {
                cc.audioEngine.setVolume(t, e * s.sfxVolume)
            }, s.fadeSfxIDVolume = function (t, e, i) {
                var n = "fadeTween" + t;
                this.fadeTweens[n] && this.fadeTweens[n].kill();
                var o = {vol: cc.audioEngine.getVolume(t)}, r = a.TweenMax.to(o, i, {
                    vol: e * s.sfxVolume, onUpdate: function () {
                        cc.audioEngine.setVolume(t, o.vol)
                    }
                });
                this.fadeTweens[n] = r
            }, s.fadeMusicIDVolume = function (t, e, i) {
                var n = "fadeTween" + t;
                this.fadeTweens[n] && this.fadeTweens[n].kill();
                var o = {vol: cc.audioEngine.getVolume(t)}, r = a.TweenMax.to(o, i, {
                    vol: e * s.musicVolume, onUpdate: function () {
                        cc.audioEngine.setVolume(t, o.vol)
                    }
                });
                this.fadeTweens[n] = r
            }, s.stopAudio = function (t) {
                cc.audioEngine.stop(t)
            }, s.musicIds = [], s.effectIds = [], s.musicVolume = 1, s.sfxVolume = 1, s.EFFECT_VOLUME_STORAGE_NAME = "effectVolume", s.MUSIC_VOLUME_STORAGE_NAME = "musicVolume", s.fadeTweens = {}, s
        }();
        i.default = n, cc._RF.pop()
    }, {gsap: 1}],
    AudioToggle: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "52542BHQKBPX6TP4nlZp7Z8", "AudioToggle"), Object.defineProperty(i, "__esModule", {value: !0});
        var o = t("gsap"), n = cc._decorator, r = n.ccclass, s = n.property, a = function (t) {
            function e() {
                var e = null !== t && t.apply(this, arguments) || this;
                return e.spriteOn = null, e.spriteOff = null, e.toggleTime = .2, e.onToggleClicked = function (t) {
                    e.toggle(!e.isOn, e.toggleTime, !0)
                }, e
            }

            return __extends(e, t), (n = e).prototype.start = function () {
                this.addEventListeners()
            }, e.prototype.addEventListeners = function () {
                this.node.on(cc.Node.EventType.TOUCH_END, this.onToggleClicked)
            }, e.prototype.toggle = function (t, e, i) {
                (this.isOn = t) ? (o.TweenMax.to(this.spriteOn, e, {opacity: 255}), o.TweenMax.to(this.spriteOff, e, {opacity: 0})) : (o.TweenMax.to(this.spriteOn, e, {opacity: 0}), o.TweenMax.to(this.spriteOff, e, {opacity: 255})), i && this.node.emit(n.TOGGLED)
            }, e.prototype.slideToOn = function () {
                this.toggle(!0, this.toggleTime, !1)
            }, e.prototype.slideToOff = function () {
                this.toggle(!1, this.toggleTime, !1)
            }, e.TOGGLED = "TOGGLE_BUTTON_TOGGLED", __decorate([s(cc.Node)], e.prototype, "spriteOn", void 0), __decorate([s(cc.Node)], e.prototype, "spriteOff", void 0), e = n = __decorate([r], e);
            var n
        }(cc.Component);
        i.default = a, cc._RF.pop()
    }, {gsap: 1}],
    BackgroundMusicLoader: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "6ae5dxLOWFAALF1aRK0u+PB", "BackgroundMusicLoader"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = t("./Common/AudioManager"), o = t("./Helpers/MathExtra"), r = t("gsap"), s = cc._decorator,
            a = s.ccclass, l = (s.property, function (e) {
                function t() {
                    var t = null !== e && e.apply(this, arguments) || this;
                    return t.assets = [], t.currentTrackID = -1, t
                }

                return __extends(t, e), t.prototype.start = function () {
                }, t.prototype.loadMusic = function () {
                    var i = this, t = "music/other";
                    ("safari" == cc.sys.browserType || -1 != navigator.userAgent.indexOf("AppleWebKit") && -1 != navigator.userAgent.indexOf("iOS")) && (t = "music/safari"), cc.loader.loadResDir(t, function (t, e) {
                        t ? cc.error(t) : (i.assets = e, i.assetsLoaded = !0)
                    })
                }, t.prototype.playRandom = function () {
                    if (this.assetsLoaded) {
                        var t = this.assets[o.default.randomBetween(0, this.assets.length - 1)];
                        this.currentTrackID = n.default.playMusic(t, !0, .5), n.default.fadeMusicIDVolume(this.currentTrackID, 1, 1)
                    }
                }, t.prototype.stop = function () {
                    var t = this;
                    -1 != this.currentTrackID && (n.default.fadeMusicIDVolume(this.currentTrackID, 0, 2), r.TweenMax.delayedCall(2, function () {
                        n.default.stop(t.currentTrackID)
                    }))
                }, t = __decorate([a], t)
            }(cc.Component));
        i.default = l, cc._RF.pop()
    }, {"./Common/AudioManager": "AudioManager", "./Helpers/MathExtra": "MathExtra", gsap: 1}],
    Ball: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "1c929X0IYlPu69RY+AXNK9b", "Ball"), Object.defineProperty(i, "__esModule", {value: !0});
        var o = t("../GameSettings"), r = t("./ColliderTypes"), s = t("../Common/AudioManager"),
            a = t("../Helpers/VectorExtra"), l = t("../Helpers/ParticlesExtra"), c = t("../Helpers/MathExtra"),
            h = t("../Analytics/AnalyticsHBI"), n = cc._decorator, u = n.ccclass, d = n.property, p = function (e) {
                function t() {
                    var t = null !== e && e.apply(this, arguments) || this;
                    return t.angularRotationSpeed = 1e3, t.scorePrefab = void 0, t.scoreAudio = void 0, t.flameAudio = void 0, t.cheerAudio = void 0, t.clickAudio = void 0, t.bounceAudio = void 0, t.rimHitAudio = void 0, t.floorHitAudio = void 0, t.ballTrail = void 0, t.ballFlamesContainer = void 0, t.floorCollider = void 0, t.ballFlamesSmoke = void 0, t.ballFlamesFire = void 0, t.ballShadow = void 0, t.ballSprite = void 0, t.ballFireSprite = void 0, t.scoreLayer = void 0, t.isTouchingFloor = !1, t.comboCounter = 0, t.collisionsListScore = [], t.collisionsListAll = [], t.ballPositions = [], t._direction = -1, t.floorHitTime = 1e4, t.impactForcePrc = 0, t.canUpdateFlame = !0, t.canUpdateShadow = !0, t.canUpdateBallTrail = !0, t.collidedWithBoard = !0, t.flameIsShowing = !0, t.fireAudioLoaded = !0, t.fireAudioID = -1, t.fireEmission = 0, t.smokeEmission = 0, t.trailEmission = 0, t.fireAudio = void 0, t.afterStep = function () {
                        t.updateBallTrail(), t.updateFlame(), t.updateShadow()
                    }, t
                }

                return __extends(t, e), n = t, Object.defineProperty(t.prototype, "direction", {
                    set: function (t) {
                        1 == (this._direction = t) ? this.initColliderType(r.ColliderTypes.MGEntityTypeRight) : this.initColliderType(r.ColliderTypes.MGEntityTypeLeft)
                    }, enumerable: !0, configurable: !0
                }), Object.defineProperty(t.prototype, "startPosition", {
                    set: function (t) {
                        this._startPosition = t
                    }, enumerable: !0, configurable: !0
                }), t.prototype.onLoad = function () {
                    this.loadFireAudio(), this.rb = this.getComponent(cc.RigidBody), this.cl = this.getComponent("cc.PhysicsCircleCollider"), this._startPosition = this.node.position, this.physicsManager = cc.director.getPhysicsManager(), this.physicsManager.on("after-step", this.afterStep)
                }, t.prototype.onDestroy = function () {
                    console.log("ball.onDestory");
                    this.physicsManager.off("after-step");
                }, t.prototype.loadFireAudio = function () {
                    var i = this, t = "audio/fireOthers";
                    ("safari" == cc.sys.browserType || -1 != navigator.userAgent.indexOf("AppleWebKit") && -1 != navigator.userAgent.indexOf("iOS")) && (t = "audio/fireSafari"), cc.loader.loadRes(t, function (t, e) {
                        t ? cc.error(t) : (i.fireAudio = e, i.fireAudioLoaded = !0)
                    })
                }, t.prototype.start = function () {
                    this.fireEmission = 40, this.smokeEmission = 40, this.trailEmission = 10, this.showFire(!1)
                }, t.prototype.showFire = function (t) {
                    t && !this.flameIsShowing ? (this.fireAudioLoaded && (this.fireAudioID = s.default.playEffect(this.fireAudio, !0, 1)), this.flameIsShowing = !0, this.ballFlamesSmoke.emissionRate = this.smokeEmission, this.ballFlamesFire.emissionRate = this.fireEmission, this.ballSprite.active = !1, this.ballFireSprite.active = !0) : !t && this.flameIsShowing && (s.default.stop(this.fireAudioID), this.ballSprite.active = !0, this.ballFireSprite.active = !1, this.flameIsShowing = !1, this.ballFlamesSmoke.emissionRate = 0, this.ballFlamesFire.emissionRate = 0)
                }, t.prototype.restart = function () {
                    this.move(this._startPosition), this.resetValues()
                }, t.prototype.restartCenter = function () {
                    this.move(new cc.Vec2(0, 0)), this.resetValues(), this.rb.gravityScale = o.default.ballGravityScaleNormal
                }, t.prototype.move = function (t) {
                    this.node.active = !1, this.node.position = t, this.node.active = !0
                }, t.prototype.initColliderType = function (t) {
                    var e = this.rb._b2Body.GetFixtureList(), i = e.GetFilterData();
                    i.categoryBits = r.ColliderTypes.MGEntityTypeBall, i.maskBits = t | r.ColliderTypes.MGEntityTypeFloor, e.SetFilterData(i)
                }, t.prototype.bounce = function () {
                    this.rb.gravityScale != o.default.ballGravityScaleNormal && (this.rb.gravityScale = o.default.ballGravityScaleNormal), this.node.emit(n.BOUNCE);
                    var t, e = new cc.Vec2(o.default.bounceForce.x, o.default.bounceForce.y), i = 0;
                    this.rb.linearVelocity.x < 0 && (this.rb.linearVelocity = new cc.Vec2(0, this.rb.linearVelocity.y)), this.rb.linearVelocity.y, this.rb.linearVelocity = new cc.Vec2(this.rb.linearVelocity.x, 0), 50 < this.rb.linearVelocity.x && (this.rb.linearVelocity = new cc.Vec2(50, this.rb.linearVelocity.y)), i = this.rb.linearVelocity.x + e.x, t = this.rb.linearVelocity.y + e.y, i *= this._direction, this.rb.linearVelocity = new cc.Vec2(i, t), this.rb.angularVelocity = this._direction * this.angularRotationSpeed, s.default.playEffect(this.clickAudio, !1, 1), this.collisionsListScore = [], this.collidedWithBoard = !1
                }, t.prototype.updateBallTrail = function () {
                    if (this.canUpdateBallTrail) {
                        var t = this.rb._b2Body.m_linearVelocity, e = Math.abs(t.x * t.y);
                        this.ballTrail.emissionRate = this.trailEmission * e
                    }
                }, t.prototype.updateShadow = function () {
                    if (this.canUpdateShadow) {
                        this.ballTrail.node.position = this.node.position, this.ballShadow.x = this.node.position.x;
                        var t = a.default.distance(this.node.position, this.ballShadow.position),
                            e = 255 - c.default.clamp(t, 0, 255), i = e / 255;
                        this.ballShadow.opacity = e, this.ballShadow.scale = i
                    }
                }, t.prototype.updateFlame = function () {
                    this.canUpdateFlame && (this.ballFlamesContainer.position = this.node.position, 1 < this.comboCounter ? this.showFire(!0) : this.showFire(!1), 10 < this.ballPositions.length && (this.ballPositions = this.ballPositions.slice(0, 10)))
                }, t.prototype.show = function () {
                    this.node.active = !0, this.ballShadow.active = !0, this.canUpdateFlame = !0, this.canUpdateShadow = !0, this.canUpdateBallTrail = !0, this.ballTrail.emissionRate = 0, this.rb.linearVelocity = new cc.Vec2(0, 0), this.rb.angularVelocity = 0
                }, t.prototype.hide = function () {
                    this.node.active = !1, this.ballShadow.active = !1, this.canUpdateFlame = !1, this.canUpdateShadow = !1, this.canUpdateBallTrail = !1, this.ballTrail.emissionRate = 0, this.showFire(!1)
                }, t.prototype.resetValues = function () {
                    this.rb.linearVelocity = new cc.Vec2(0, 0), this.rb.angularVelocity = 0, this.comboCounter = 0, this.ballShadow.active = !0, this.canUpdateFlame = !0, this.canUpdateShadow = !0, this.canUpdateBallTrail = !0
                }, t.prototype.pause = function () {
                    l.default.freeze(this.ballTrail), this.scoreNode && this.scoreNode._components && l.default.freeze(this.scoreNode.getComponent(cc.ParticleSystem)), this.fireAudioID && this.fireAudioLoaded && 0 != this.fireAudioID && this.flameIsShowing && s.default.stop(this.fireAudioID)
                }, t.prototype.resume = function () {
                    l.default.unfreeze(this.ballTrail), this.scoreNode && this.scoreNode._components && l.default.unfreeze(this.scoreNode.getComponent(cc.ParticleSystem)), this.fireAudioID && this.fireAudioLoaded && 0 != this.fireAudioID && this.flameIsShowing && (this.fireAudioID = s.default.playEffect(this.fireAudio, !0, 1))
                }, t.prototype.calcImpactForcePrc = function () {
                    var t = (Math.abs(this.rb.linearVelocity.x) + Math.abs(this.rb.linearVelocity.y)) / 100;
                    return Math.min(10, t) / 10
                }, t.prototype.onBeginContact = function (t, e, i) {
                    this.impactForcePrc = this.calcImpactForcePrc(), this.checkFloorBegin(i), this.checkAudio(i), this.checkBoard(i), this.checkPoint(i)
                }, t.prototype.onEndContact = function (t, e, i) {
                    this.checkFloorEnd(i)
                }, t.prototype.checkBoard = function (t) {
                    "Board Collider" == t.node.name && (this.collidedWithBoard = !0)
                }, t.prototype.checkFloorBegin = function (t) {
                    "Floor" == t.node.name && (this.isTouchingFloor = !0, this.node.emit(n.HIT_FLOOR))
                }, t.prototype.checkFloorEnd = function (t) {
                    "Floor" == t.node.name && (this.isTouchingFloor = !1)
                }, t.prototype.checkAudio = function (t) {
                    if ("Score Collider Start" != t.node.name && "Score Collider End" != t.node.name)
                        if ("Bounce Collider Left" == t.node.name || "Bounce Collider Right" == t.node.name) s.default.playEffect(this.rimHitAudio, !1, this.impactForcePrc); else if ("Floor" == t.node.name) {
                            var e = (new Date).getTime(), i = e - this.floorHitTime;
                            if (this.floorHitTime = e, 100 < i && .3 < this.impactForcePrc) {
                                var n = c.default.rangeToRange(this.impactForcePrc, .3, 1, 0, 1);
                                s.default.playEffect(this.floorHitAudio, !1, n)
                            }
                            i < 50 && (this.rb.linearVelocity = new cc.Vec2(this.rb.linearVelocity.x, 0), this.rb.gravityScale = o.default.ballGravityScaleLittle)
                        } else s.default.playEffect(this.bounceAudio, !1, this.impactForcePrc)
                }, t.prototype.doCombo = function () {
                    this.comboCounter++;
                    console.log('doCombo: ' + this.comboCounter);
                    s.default.playEffect(this.cheerAudio, !1, 1);
                    this.collisionsListAll = [];
                    2 <= this.comboCounter && s.default.playEffect(this.flameAudio, !1, 1)
                    this.comboScore = this.comboCounter * this.comboCounter;
                    this.comboScore = Math.min(this.comboScore, 100);
                }, t.prototype.checkPoint = function (t) {
                    if (this.collisionsListAll.unshift(t.node.name), "Score Collider Start" == t.node.name || "Score Collider End" == t.node.name) {
                        if (this.collisionsListScore.push(t.node.name), this.collisionsListScore.length < 2) return;
                        if ("Score Collider Start" == this.collisionsListScore[this.collisionsListScore.length - 2] && "Score Collider End" == this.collisionsListScore[this.collisionsListScore.length - 1]) {
                            this.scoreNode = cc.instantiate(this.scorePrefab), this.scoreNode.parent = this.scoreLayer, this.scoreNode.setPosition(this.node.x, this.node.y), s.default.playEffect(this.scoreAudio, !1, 1), this.rb.linearVelocity = new cc.Vec2(this.rb.linearVelocity.x / 2, this.rb.linearVelocity.y);
                            var e = this.physicsManager.speed != o.default.physicsNormalSpeed;
                            "Score Collider End" == this.collisionsListAll[0] && "Score Collider Start" == this.collisionsListAll[1] ? (this.doCombo(), this.node.emit(n.CLEAN_SHOT, {
                                count: this.comboScore,
                                type: n.COMBO_TYPE_CLEAN
                            })) : this.collidedWithBoard ? (this.doCombo(), this.node.emit(n.CLEAN_SHOT, {
                                count: this.comboScore,
                                type: n.COMBO_TYPE_BOARD
                            })) : e ? this.doCombo() : (this.comboCounter = 0, this.comboScore = 2, h.default.logEvent("gameplay", "", "", "combo", this.comboCounter)), this.node.emit(n.SCORED, {
                                count: this.comboScore,
                                type: n.COMBO_TYPE_NORMAL
                            })
                        }
                        2 < this.collisionsListScore.length && (this.collisionsListScore = this.collisionsListScore.splice(this.collisionsListScore.length - 2, 2))
                    }
                }, t.HIT_FLOOR = "BALL_HIT_FLOOR", t.SCORED = "BALL_SCORED", t.BOUNCE = "BALL_BOUNCE", t.RAPID_BOUNCE = "BALL_RAPID_BOUNCE", t.CLEAN_SHOT = "BALL_CLEAN_SHOT", t.COMBO_TYPE_CLEAN = "COMBO_TYPE_CLEAN", t.COMBO_TYPE_NORMAL = "COMBO_TYPE_NORMAL", t.COMBO_TYPE_BOARD = "COMBO_TYPE_BOARD", __decorate([d(cc.Float)], t.prototype, "angularRotationSpeed", void 0), __decorate([d(cc.Prefab)], t.prototype, "scorePrefab", void 0), __decorate([d(cc.AudioClip)], t.prototype, "scoreAudio", void 0), __decorate([d(cc.AudioClip)], t.prototype, "flameAudio", void 0), __decorate([d(cc.AudioClip)], t.prototype, "cheerAudio", void 0), __decorate([d(cc.AudioClip)], t.prototype, "clickAudio", void 0), __decorate([d(cc.AudioClip)], t.prototype, "bounceAudio", void 0), __decorate([d(cc.AudioClip)], t.prototype, "rimHitAudio", void 0), __decorate([d(cc.AudioClip)], t.prototype, "floorHitAudio", void 0), __decorate([d(cc.ParticleSystem)], t.prototype, "ballTrail", void 0), __decorate([d(cc.Node)], t.prototype, "ballFlamesContainer", void 0), __decorate([d(cc.PhysicsBoxCollider)], t.prototype, "floorCollider", void 0), __decorate([d(cc.ParticleSystem)], t.prototype, "ballFlamesSmoke", void 0), __decorate([d(cc.ParticleSystem)], t.prototype, "ballFlamesFire", void 0), __decorate([d(cc.Node)], t.prototype, "ballShadow", void 0), __decorate([d(cc.Node)], t.prototype, "ballSprite", void 0), __decorate([d(cc.Node)], t.prototype, "ballFireSprite", void 0), __decorate([d(cc.Node)], t.prototype, "scoreLayer", void 0), t = n = __decorate([u], t);
                var n
            }(cc.Component);
        i.default = p, cc._RF.pop()
    }, {
        "../Analytics/AnalyticsHBI": "AnalyticsHBI",
        "../Common/AudioManager": "AudioManager",
        "../GameSettings": "GameSettings",
        "../Helpers/MathExtra": "MathExtra",
        "../Helpers/ParticlesExtra": "ParticlesExtra",
        "../Helpers/VectorExtra": "VectorExtra",
        "./ColliderTypes": "ColliderTypes"
    }],
    Basket: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "d8706mzs9FNNJuuxFMb34RH", "Basket"), Object.defineProperty(i, "__esModule", {value: !0});
        var o = t("gsap"), r = t("./ColliderTypes"), n = cc._decorator, s = n.ccclass, a = n.property,
            l = function (e) {
                function t() {
                    var t = null !== e && e.apply(this, arguments) || this;
                    return t.netSide = "", t.boardCollider = void 0, t.netCollider1 = void 0, t.netCollider2 = void 0, t.scoreCollider1 = void 0, t.scoreCollider2 = void 0, t.backboardNormal = void 0, t.backboardShattered = void 0, t.shatterParticles = void 0, t.scoreLayer = void 0, t.netBack = void 0, t.netFront = void 0, t.shatterNode = void 0, t
                }

                return __extends(t, e), t.prototype.start = function () {
                    this.backboardShattered.node.opacity = 0, this.defineColliderTypes()
                }, t.prototype.defineColliderTypes = function () {
                    var t;
                    "left" == this.netSide ? t = r.ColliderTypes.MGEntityTypeLeft : "right" == this.netSide && (t = r.ColliderTypes.MGEntityTypeRight), this.setColliderType(this.boardCollider, t), this.setColliderType(this.netCollider1, t), this.setColliderType(this.netCollider2, t), this.setColliderType(this.scoreCollider1, t), this.setColliderType(this.scoreCollider2, t)
                }, t.prototype.setColliderType = function (t, e) {
                    var i = t.body._b2Body.GetFixtureList(), n = i.GetFilterData();
                    n.categoryBits = e, n.maskBits = r.ColliderTypes.MGEntityTypeBall, i.SetFilterData(n)
                }, t.prototype.backBoardShatter = function () {
                    this.backboardNormal.node.opacity = 0, this.backboardShattered.node.opacity = 255, this.shatterNode = cc.instantiate(this.shatterParticles), this.shatterNode.parent = this.scoreLayer;
                    var t = 0;
                    "left" == this.netSide ? t = 40 : "right" == this.netSide && (t = -40), this.shatterNode.setPosition(this.node.x + t, this.node.y);
                    console.log("backBoardShatter")
                }, t.prototype.backBoardRevert = function () {
                    this.backboardNormal.node.opacity = 255, this.backboardShattered.node.opacity = 0
                }, t.prototype.updateNetFrontPosition = function () {
                    var t = cc.director.getVisibleSize();
                    this.netFront.position = cc.p(this.netBack.convertToWorldSpace(cc.p(0, 0)).x - t.width / 2, this.netBack.convertToWorldSpace(cc.p(0, 0)).y - t.height / 2)
                }, t.prototype.show = function () {
                    o.TweenMax.to(this.node, .3, {opacity: 255}), o.TweenMax.to(this.netBack, .3, {opacity: 255}), o.TweenMax.to(this.netFront, .3, {opacity: 255})
                }, t.prototype.hide = function () {
                    o.TweenMax.to(this.node, .3, {opacity: 0}), o.TweenMax.to(this.netBack, .3, {opacity: 0}), o.TweenMax.to(this.netFront, .3, {opacity: 0})
                }, t.prototype.moveIn = function (t, e) {
                    var i = this;
                    this.backBoardRevert(), this.updateNetFrontPosition(), this.show();
                    var n = {x: this.hiddenPos};
                    this.node.active = !0, o.TweenMax.to(n, e, {
                        x: this.shownPos, delay: 0, onUpdate: function () {
                            i.setBasketPosition(n.x, t), i.updateNetFrontPosition()
                        }, onComplete: function () {
                            i.defineColliderTypes()
                        }, ease: o.Quad.easeOut
                    })
                }, t.prototype.moveOut = function (t) {
                    var e = this, i = {x: this.shownPos};
                    o.TweenMax.to(i, t, {
                        x: this.hiddenPos, delay: .5, onUpdate: function () {
                            e.setBasketPosition(i.x, e.node.y), e.updateNetFrontPosition()
                        }, onComplete: function () {
                            e.node.active = !1
                        }, ease: o.Quad.easeIn
                    })
                }, t.prototype.setBasketPosition = function (t, e) {
                    this.node.active = !1, this.node.x = Math.round(t), this.node.y = Math.round(e), this.node.active = !0
                }, t.prototype.moveToStartPos = function () {
                    this.setBasketPosition(this.hiddenPos, this.node.y)
                }, __decorate([a(cc.String)], t.prototype, "netSide", void 0), __decorate([a(cc.PhysicsBoxCollider)], t.prototype, "boardCollider", void 0), __decorate([a(cc.PhysicsCircleCollider)], t.prototype, "netCollider1", void 0), __decorate([a(cc.PhysicsCircleCollider)], t.prototype, "netCollider2", void 0), __decorate([a(cc.PhysicsBoxCollider)], t.prototype, "scoreCollider1", void 0), __decorate([a(cc.PhysicsBoxCollider)], t.prototype, "scoreCollider2", void 0), __decorate([a(cc.Sprite)], t.prototype, "backboardNormal", void 0), __decorate([a(cc.Sprite)], t.prototype, "backboardShattered", void 0), __decorate([a(cc.Prefab)], t.prototype, "shatterParticles", void 0), __decorate([a(cc.Node)], t.prototype, "scoreLayer", void 0), __decorate([a(cc.Node)], t.prototype, "netBack", void 0), __decorate([a(cc.Node)], t.prototype, "netFront", void 0), t = __decorate([s], t)
            }(cc.Component);
        i.default = l, cc._RF.pop()
    }, {"./ColliderTypes": "ColliderTypes", gsap: 1}],
    1: [function (t, ot, e) {
        (function (t) {
            var ne = void 0 !== ot && ot.exports && void 0 !== t ? t : this || window;
            (ne._gsQueue || (ne._gsQueue = [])).push(function () {
                "use strict";
                var x, b, w, S, y, i, g, C, v, T, p, f, m, t, e, l, n;
                ne._gsDefine("TweenMax", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function (n, h, g) {
                    var m = function (t) {
                            var e, i = [], n = t.length;
                            for (e = 0; e !== n; i.push(t[e++])) ;
                            return i
                        }, y = function (t, e, i) {
                            var n, o, r = t.cycle;
                            for (n in r) o = r[n], t[n] = "function" == typeof o ? o(i, e[i]) : o[i % o.length];
                            delete t.cycle
                        }, v = function (t, e, i) {
                            g.call(this, t, e, i), this._cycle = 0, this._yoyo = !0 === this.vars.yoyo || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._repeat && this._uncache(!0), this.render = v.prototype.render
                        }, T = 1e-10, b = g._internals, w = b.isSelector, x = b.isArray, t = v.prototype = g.to({}, .1, {}),
                        S = [];
                    v.version = "1.20.3", t.constructor = v, t.kill()._gc = !1, v.killTweensOf = v.killDelayedCallsTo = g.killTweensOf, v.getTweensOf = g.getTweensOf, v.lagSmoothing = g.lagSmoothing, v.ticker = g.ticker, v.render = g.render, t.invalidate = function () {
                        return this._yoyo = !0 === this.vars.yoyo || !!this.vars.yoyoEase, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._yoyoEase = null, this._uncache(!0), g.prototype.invalidate.call(this)
                    }, t.updateTo = function (t, e) {
                        var i, n = this.ratio, o = this.vars.immediateRender || t.immediateRender;
                        for (i in e && this._startTime < this._timeline._time && (this._startTime = this._timeline._time, this._uncache(!1), this._gc ? this._enabled(!0, !1) : this._timeline.insert(this, this._startTime - this._delay)), t) this.vars[i] = t[i];
                        if (this._initted || o)
                            if (e) this._initted = !1, o && this.render(0, !0, !0); else if (this._gc && this._enabled(!0, !1), this._notifyPluginsOfEnabled && this._firstPT && g._onPluginEvent("_onDisable", this), .998 < this._time / this._duration) {
                                var r = this._totalTime;
                                this.render(0, !0, !1), this._initted = !1, this.render(r, !0, !1)
                            } else if (this._initted = !1, this._init(), 0 < this._time || o)
                                for (var s, a = 1 / (1 - n), l = this._firstPT; l;) s = l.s + l.c, l.c *= a, l.s = s - l.c, l = l._next;
                        return this
                    }, t.render = function (t, e, i) {
                        this._initted || 0 === this._duration && this.vars.repeat && this.invalidate();
                        var n, o, r, s, a, l, c, h, u, d = this._dirty ? this.totalDuration() : this._totalDuration,
                            p = this._time, f = this._totalTime, _ = this._cycle, m = this._duration,
                            y = this._rawPrevTime;
                        if (d - 1e-7 <= t && 0 <= t ? (this._totalTime = d, this._cycle = this._repeat, this._yoyo && 0 != (1 & this._cycle) ? (this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0) : (this._time = m, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1), this._reversed || (n = !0, o = "onComplete", i = i || this._timeline.autoRemoveChildren), 0 === m && (this._initted || !this.vars.lazy || i) && (this._startTime === this._timeline._duration && (t = 0), (y < 0 || t <= 0 && -1e-7 <= t || y === T && "isPause" !== this.data) && y !== t && (i = !0, T < y && (o = "onReverseComplete")), this._rawPrevTime = h = !e || t || y === t ? t : T)) : t < 1e-7 ? (this._totalTime = this._time = this._cycle = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== f || 0 === m && 0 < y) && (o = "onReverseComplete", n = this._reversed), t < 0 && (this._active = !1, 0 === m && (this._initted || !this.vars.lazy || i) && (0 <= y && (i = !0), this._rawPrevTime = h = !e || t || y === t ? t : T)), this._initted || (i = !0)) : (this._totalTime = this._time = t, 0 !== this._repeat && (s = m + this._repeatDelay, this._cycle = this._totalTime / s >> 0, 0 !== this._cycle && this._cycle === this._totalTime / s && f <= t && this._cycle--, this._time = this._totalTime - this._cycle * s, this._yoyo && 0 != (1 & this._cycle) && (this._time = m - this._time, (u = this._yoyoEase || this.vars.yoyoEase) && (this._yoyoEase || (!0 !== u || this._initted ? this._yoyoEase = u = !0 === u ? this._ease : u instanceof Ease ? u : Ease.map[u] : (u = this.vars.ease, this._yoyoEase = u = u ? u instanceof Ease ? u : "function" == typeof u ? new Ease(u, this.vars.easeParams) : Ease.map[u] || g.defaultEase : g.defaultEase)), this.ratio = u ? 1 - u.getRatio((m - this._time) / m) : 0)), this._time > m ? this._time = m : this._time < 0 && (this._time = 0)), this._easeType && !u ? (a = this._time / m, (1 === (l = this._easeType) || 3 === l && .5 <= a) && (a = 1 - a), 3 === l && (a *= 2), 1 === (c = this._easePower) ? a *= a : 2 === c ? a *= a * a : 3 === c ? a *= a * a * a : 4 === c && (a *= a * a * a * a), 1 === l ? this.ratio = 1 - a : 2 === l ? this.ratio = a : this._time / m < .5 ? this.ratio = a / 2 : this.ratio = 1 - a / 2) : u || (this.ratio = this._ease.getRatio(this._time / m))), p !== this._time || i || _ !== this._cycle) {
                            if (!this._initted) {
                                if (this._init(), !this._initted || this._gc) return;
                                if (!i && this._firstPT && (!1 !== this.vars.lazy && this._duration || this.vars.lazy && !this._duration)) return this._time = p, this._totalTime = f, this._rawPrevTime = y, this._cycle = _, b.lazyTweens.push(this), void(this._lazy = [t, e]);
                                !this._time || n || u ? n && this._ease._calcEnd && !u && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1)) : this.ratio = this._ease.getRatio(this._time / m)
                            }
                            for (!1 !== this._lazy && (this._lazy = !1), this._active || !this._paused && this._time !== p && 0 <= t && (this._active = !0), 0 === f && (2 === this._initted && 0 < t && this._init(), this._startAt && (0 <= t ? this._startAt.render(t, !0, i) : o || (o = "_dummyGS")), this.vars.onStart && (0 === this._totalTime && 0 !== m || e || this._callback("onStart"))), r = this._firstPT; r;) r.f ? r.t[r.p](r.c * this.ratio + r.s) : r.t[r.p] = r.c * this.ratio + r.s, r = r._next;
                            this._onUpdate && (t < 0 && this._startAt && this._startTime && this._startAt.render(t, !0, i), e || (this._totalTime !== f || o) && this._callback("onUpdate")), this._cycle !== _ && (e || this._gc || this.vars.onRepeat && this._callback("onRepeat")), o && (this._gc && !i || (t < 0 && this._startAt && !this._onUpdate && this._startTime && this._startAt.render(t, !0, i), n && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !e && this.vars[o] && this._callback(o), 0 === m && this._rawPrevTime === T && h !== T && (this._rawPrevTime = 0)))
                        } else f !== this._totalTime && this._onUpdate && (e || this._callback("onUpdate"))
                    }, v.to = function (t, e, i) {
                        return new v(t, e, i)
                    }, v.from = function (t, e, i) {
                        return i.runBackwards = !0, i.immediateRender = 0 != i.immediateRender, new v(t, e, i)
                    }, v.fromTo = function (t, e, i, n) {
                        return n.startAt = i, n.immediateRender = 0 != n.immediateRender && 0 != i.immediateRender, new v(t, e, n)
                    }, v.staggerTo = v.allTo = function (t, e, i, n, o, r, s) {
                        n = n || 0;
                        var a, l, c, h, u = 0, d = [], p = function () {
                            i.onComplete && i.onComplete.apply(i.onCompleteScope || this, arguments), o.apply(s || i.callbackScope || this, r || S)
                        }, f = i.cycle, _ = i.startAt && i.startAt.cycle;
                        for (x(t) || ("string" == typeof t && (t = g.selector(t) || t), w(t) && (t = m(t))), t = t || [], n < 0 && ((t = m(t)).reverse(), n *= -1), a = t.length - 1, c = 0; c <= a; c++) {
                            for (h in l = {}, i) l[h] = i[h];
                            if (f && (y(l, t, c), null != l.duration && (e = l.duration, delete l.duration)), _) {
                                for (h in _ = l.startAt = {}, i.startAt) _[h] = i.startAt[h];
                                y(l.startAt, t, c)
                            }
                            l.delay = u + (l.delay || 0), c === a && o && (l.onComplete = p), d[c] = new v(t[c], e, l), u += n
                        }
                        return d
                    }, v.staggerFrom = v.allFrom = function (t, e, i, n, o, r, s) {
                        return i.runBackwards = !0, i.immediateRender = 0 != i.immediateRender, v.staggerTo(t, e, i, n, o, r, s)
                    }, v.staggerFromTo = v.allFromTo = function (t, e, i, n, o, r, s, a) {
                        return n.startAt = i, n.immediateRender = 0 != n.immediateRender && 0 != i.immediateRender, v.staggerTo(t, e, n, o, r, s, a)
                    }, v.delayedCall = function (t, e, i, n, o) {
                        return new v(e, 0, {
                            delay: t,
                            onComplete: e,
                            onCompleteParams: i,
                            callbackScope: n,
                            onReverseComplete: e,
                            onReverseCompleteParams: i,
                            immediateRender: !1,
                            useFrames: o,
                            overwrite: 0
                        })
                    }, v.set = function (t, e) {
                        return new v(t, 0, e)
                    }, v.isTweening = function (t) {
                        return 0 < g.getTweensOf(t, !0).length
                    };
                    var r = function (t, e) {
                        for (var i = [], n = 0, o = t._first; o;) o instanceof g ? i[n++] = o : (e && (i[n++] = o), n = (i = i.concat(r(o, e))).length), o = o._next;
                        return i
                    }, u = v.getAllTweens = function (t) {
                        return r(n._rootTimeline, t).concat(r(n._rootFramesTimeline, t))
                    };
                    v.killAll = function (t, e, i, n) {
                        null == e && (e = !0), null == i && (i = !0);
                        var o, r, s, a = u(0 != n), l = a.length, c = e && i && n;
                        for (s = 0; s < l; s++) r = a[s], (c || r instanceof h || (o = r.target === r.vars.onComplete) && i || e && !o) && (t ? r.totalTime(r._reversed ? 0 : r.totalDuration()) : r._enabled(!1, !1))
                    }, v.killChildTweensOf = function (t, e) {
                        if (null != t) {
                            var i, n, o, r, s, a = b.tweenLookup;
                            if ("string" == typeof t && (t = g.selector(t) || t), w(t) && (t = m(t)), x(t))
                                for (r = t.length; -1 < --r;) v.killChildTweensOf(t[r], e); else {
                                for (o in i = [], a)
                                    for (n = a[o].target.parentNode; n;) n === t && (i = i.concat(a[o].tweens)), n = n.parentNode;
                                for (s = i.length, r = 0; r < s; r++) e && i[r].totalTime(i[r].totalDuration()), i[r]._enabled(!1, !1)
                            }
                        }
                    };
                    var o = function (t, e, i, n) {
                        e = !1 !== e, i = !1 !== i;
                        for (var o, r, s = u(n = !1 !== n), a = e && i && n, l = s.length; -1 < --l;) r = s[l], (a || r instanceof h || (o = r.target === r.vars.onComplete) && i || e && !o) && r.paused(t)
                    };
                    return v.pauseAll = function (t, e, i) {
                        o(!0, t, e, i)
                    }, v.resumeAll = function (t, e, i) {
                        o(!1, t, e, i)
                    }, v.globalTimeScale = function (t) {
                        var e = n._rootTimeline, i = g.ticker.time;
                        return arguments.length ? (t = t || T, e._startTime = i - (i - e._startTime) * e._timeScale / t, e = n._rootFramesTimeline, i = g.ticker.frame, e._startTime = i - (i - e._startTime) * e._timeScale / t, e._timeScale = n._rootTimeline._timeScale = t, t) : e._timeScale
                    }, t.progress = function (t, e) {
                        return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 != (1 & this._cycle) ? 1 - t : t) + this._cycle * (this._duration + this._repeatDelay), e) : this._time / this.duration()
                    }, t.totalProgress = function (t, e) {
                        return arguments.length ? this.totalTime(this.totalDuration() * t, e) : this._totalTime / this.totalDuration()
                    }, t.time = function (t, e) {
                        return arguments.length ? (this._dirty && this.totalDuration(), t > this._duration && (t = this._duration), this._yoyo && 0 != (1 & this._cycle) ? t = this._duration - t + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (t += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(t, e)) : this._time
                    }, t.duration = function (t) {
                        return arguments.length ? n.prototype.duration.call(this, t) : this._duration
                    }, t.totalDuration = function (t) {
                        return arguments.length ? -1 === this._repeat ? this : this.duration((t - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat, this._dirty = !1), this._totalDuration)
                    }, t.repeat = function (t) {
                        return arguments.length ? (this._repeat = t, this._uncache(!0)) : this._repeat
                    }, t.repeatDelay = function (t) {
                        return arguments.length ? (this._repeatDelay = t, this._uncache(!0)) : this._repeatDelay
                    }, t.yoyo = function (t) {
                        return arguments.length ? (this._yoyo = t, this) : this._yoyo
                    }, v
                }, !0), ne._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function (h, u, d) {
                    var p = function (t) {
                            u.call(this, t), this._labels = {}, this.autoRemoveChildren = !0 === this.vars.autoRemoveChildren, this.smoothChildTiming = !0 === this.vars.smoothChildTiming, this._sortChildren = !0, this._onUpdate = this.vars.onUpdate;
                            var e, i, n = this.vars;
                            for (i in n) e = n[i], m(e) && -1 !== e.join("").indexOf("{self}") && (n[i] = this._swapSelfInParams(e));
                            m(n.tweens) && this.add(n.tweens, 0, n.align, n.stagger)
                        }, _ = 1e-10, t = d._internals, e = p._internals = {}, f = t.isSelector, m = t.isArray,
                        y = t.lazyTweens, g = t.lazyRender, s = ne._gsDefine.globals, v = function (t) {
                            var e, i = {};
                            for (e in t) i[e] = t[e];
                            return i
                        }, T = function (t, e, i) {
                            var n, o, r = t.cycle;
                            for (n in r) o = r[n], t[n] = "function" == typeof o ? o(i, e[i]) : o[i % o.length];
                            delete t.cycle
                        }, r = e.pauseCallback = function () {
                        }, b = function (t) {
                            var e, i = [], n = t.length;
                            for (e = 0; e !== n; i.push(t[e++])) ;
                            return i
                        }, i = p.prototype = new u;
                    return p.version = "1.20.3", i.constructor = p, i.kill()._gc = i._forcingPlayhead = i._hasPause = !1, i.to = function (t, e, i, n) {
                        var o = i.repeat && s.TweenMax || d;
                        return e ? this.add(new o(t, e, i), n) : this.set(t, i, n)
                    }, i.from = function (t, e, i, n) {
                        return this.add((i.repeat && s.TweenMax || d).from(t, e, i), n)
                    }, i.fromTo = function (t, e, i, n, o) {
                        var r = n.repeat && s.TweenMax || d;
                        return e ? this.add(r.fromTo(t, e, i, n), o) : this.set(t, n, o)
                    }, i.staggerTo = function (t, e, i, n, o, r, s, a) {
                        var l, c, h = new p({
                            onComplete: r,
                            onCompleteParams: s,
                            callbackScope: a,
                            smoothChildTiming: this.smoothChildTiming
                        }), u = i.cycle;
                        for ("string" == typeof t && (t = d.selector(t) || t), f(t = t || []) && (t = b(t)), (n = n || 0) < 0 && ((t = b(t)).reverse(), n *= -1), c = 0; c < t.length; c++) (l = v(i)).startAt && (l.startAt = v(l.startAt), l.startAt.cycle && T(l.startAt, t, c)), u && (T(l, t, c), null != l.duration && (e = l.duration, delete l.duration)), h.to(t[c], e, l, c * n);
                        return this.add(h, o)
                    }, i.staggerFrom = function (t, e, i, n, o, r, s, a) {
                        return i.immediateRender = 0 != i.immediateRender, i.runBackwards = !0, this.staggerTo(t, e, i, n, o, r, s, a)
                    }, i.staggerFromTo = function (t, e, i, n, o, r, s, a, l) {
                        return n.startAt = i, n.immediateRender = 0 != n.immediateRender && 0 != i.immediateRender, this.staggerTo(t, e, n, o, r, s, a, l)
                    }, i.call = function (t, e, i, n) {
                        return this.add(d.delayedCall(0, t, e, i), n)
                    }, i.set = function (t, e, i) {
                        return i = this._parseTimeOrLabel(i, 0, !0), null == e.immediateRender && (e.immediateRender = i === this._time && !this._paused), this.add(new d(t, 0, e), i)
                    }, p.exportRoot = function (t, e) {
                        null == (t = t || {}).smoothChildTiming && (t.smoothChildTiming = !0);
                        var i, n, o, r, s = new p(t), a = s._timeline;
                        for (null == e && (e = !0), a._remove(s, !0), s._startTime = 0, s._rawPrevTime = s._time = s._totalTime = a._time, o = a._first; o;) r = o._next, e && o instanceof d && o.target === o.vars.onComplete || ((n = o._startTime - o._delay) < 0 && (i = 1), s.add(o, n)), o = r;
                        return a.add(s, 0), i && s.totalDuration(), s
                    }, i.add = function (t, e, i, n) {
                        var o, r, s, a, l, c;
                        if ("number" != typeof e && (e = this._parseTimeOrLabel(e, 0, !0, t)), !(t instanceof h)) {
                            if (t instanceof Array || t && t.push && m(t)) {
                                for (i = i || "normal", n = n || 0, o = e, r = t.length, s = 0; s < r; s++) m(a = t[s]) && (a = new p({tweens: a})), this.add(a, o), "string" != typeof a && "function" != typeof a && ("sequence" === i ? o = a._startTime + a.totalDuration() / a._timeScale : "start" === i && (a._startTime -= a.delay())), o += n;
                                return this._uncache(!0)
                            }
                            if ("string" == typeof t) return this.addLabel(t, e);
                            if ("function" != typeof t) throw"Cannot add " + t + " into the timeline; it is not a tween, timeline, function, or string.";
                            t = d.delayedCall(0, t)
                        }
                        if (u.prototype.add.call(this, t, e), t._time && t.render((this.rawTime() - t._startTime) * t._timeScale, !1, !1), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration())
                            for (c = (l = this).rawTime() > t._startTime; l._timeline;) c && l._timeline.smoothChildTiming ? l.totalTime(l._totalTime, !0) : l._gc && l._enabled(!0, !1), l = l._timeline;
                        return this
                    }, i.remove = function (t) {
                        if (t instanceof h) {
                            this._remove(t, !1);
                            var e = t._timeline = t.vars.useFrames ? h._rootFramesTimeline : h._rootTimeline;
                            return t._startTime = (t._paused ? t._pauseTime : e._time) - (t._reversed ? t.totalDuration() - t._totalTime : t._totalTime) / t._timeScale, this
                        }
                        if (t instanceof Array || t && t.push && m(t)) {
                            for (var i = t.length; -1 < --i;) this.remove(t[i]);
                            return this
                        }
                        return "string" == typeof t ? this.removeLabel(t) : this.kill(null, t)
                    }, i._remove = function (t, e) {
                        return u.prototype._remove.call(this, t, e), this._last ? this._time > this.duration() && (this._time = this._duration, this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this
                    }, i.append = function (t, e) {
                        return this.add(t, this._parseTimeOrLabel(null, e, !0, t))
                    }, i.insert = i.insertMultiple = function (t, e, i, n) {
                        return this.add(t, e || 0, i, n)
                    }, i.appendMultiple = function (t, e, i, n) {
                        return this.add(t, this._parseTimeOrLabel(null, e, !0, t), i, n)
                    }, i.addLabel = function (t, e) {
                        return this._labels[t] = this._parseTimeOrLabel(e), this
                    }, i.addPause = function (t, e, i, n) {
                        var o = d.delayedCall(0, r, i, n || this);
                        return o.vars.onComplete = o.vars.onReverseComplete = e, o.data = "isPause", this._hasPause = !0, this.add(o, t)
                    }, i.removeLabel = function (t) {
                        return delete this._labels[t], this
                    }, i.getLabelTime = function (t) {
                        return null != this._labels[t] ? this._labels[t] : -1
                    }, i._parseTimeOrLabel = function (t, e, i, n) {
                        var o, r;
                        if (n instanceof h && n.timeline === this) this.remove(n); else if (n && (n instanceof Array || n.push && m(n)))
                            for (r = n.length; -1 < --r;) n[r] instanceof h && n[r].timeline === this && this.remove(n[r]);
                        if (o = "number" != typeof t || e ? 99999999999 < this.duration() ? this.recent().endTime(!1) : this._duration : 0, "string" == typeof e) return this._parseTimeOrLabel(e, i && "number" == typeof t && null == this._labels[e] ? t - o : 0, i);
                        if (e = e || 0, "string" != typeof t || !isNaN(t) && null == this._labels[t]) null == t && (t = o); else {
                            if (-1 === (r = t.indexOf("="))) return null == this._labels[t] ? i ? this._labels[t] = o + e : e : this._labels[t] + e;
                            e = parseInt(t.charAt(r - 1) + "1", 10) * Number(t.substr(r + 1)), t = 1 < r ? this._parseTimeOrLabel(t.substr(0, r - 1), 0, i) : o
                        }
                        return Number(t) + e
                    }, i.seek = function (t, e) {
                        return this.totalTime("number" == typeof t ? t : this._parseTimeOrLabel(t), !1 !== e)
                    }, i.stop = function () {
                        return this.paused(!0)
                    }, i.gotoAndPlay = function (t, e) {
                        return this.play(t, e)
                    }, i.gotoAndStop = function (t, e) {
                        return this.pause(t, e)
                    }, i.render = function (t, e, i) {
                        this._gc && this._enabled(!0, !1);
                        var n, o, r, s, a, l, c, h = this._time,
                            u = this._dirty ? this.totalDuration() : this._totalDuration, d = this._startTime,
                            p = this._timeScale, f = this._paused;
                        if (h !== this._time && (t += this._time - h), u - 1e-7 <= t && 0 <= t) this._totalTime = this._time = u, this._reversed || this._hasPausedChild() || (o = !0, s = "onComplete", a = !!this._timeline.autoRemoveChildren, 0 === this._duration && (t <= 0 && -1e-7 <= t || this._rawPrevTime < 0 || this._rawPrevTime === _) && this._rawPrevTime !== t && this._first && (a = !0, this._rawPrevTime > _ && (s = "onReverseComplete"))), this._rawPrevTime = this._duration || !e || t || this._rawPrevTime === t ? t : _, t = u + 1e-4; else if (t < 1e-7)
                            if (this._totalTime = this._time = 0, (0 !== h || 0 === this._duration && this._rawPrevTime !== _ && (0 < this._rawPrevTime || t < 0 && 0 <= this._rawPrevTime)) && (s = "onReverseComplete", o = this._reversed), t < 0) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (a = o = !0, s = "onReverseComplete") : 0 <= this._rawPrevTime && this._first && (a = !0), this._rawPrevTime = t; else {
                                if (this._rawPrevTime = this._duration || !e || t || this._rawPrevTime === t ? t : _, 0 === t && o)
                                    for (n = this._first; n && 0 === n._startTime;) n._duration || (o = !1), n = n._next;
                                t = 0, this._initted || (a = !0)
                            }
                        else {
                            if (this._hasPause && !this._forcingPlayhead && !e) {
                                if (h <= t)
                                    for (n = this._first; n && n._startTime <= t && !l;) n._duration || "isPause" !== n.data || n.ratio || 0 === n._startTime && 0 === this._rawPrevTime || (l = n), n = n._next; else
                                    for (n = this._last; n && n._startTime >= t && !l;) n._duration || "isPause" === n.data && 0 < n._rawPrevTime && (l = n), n = n._prev;
                                l && (this._time = t = l._startTime, this._totalTime = t + this._cycle * (this._totalDuration + this._repeatDelay))
                            }
                            this._totalTime = this._time = this._rawPrevTime = t
                        }
                        if (this._time !== h && this._first || i || a || l) {
                            if (this._initted || (this._initted = !0), this._active || !this._paused && this._time !== h && 0 < t && (this._active = !0), 0 === h && this.vars.onStart && (0 === this._time && this._duration || e || this._callback("onStart")), h <= (c = this._time))
                                for (n = this._first; n && (r = n._next, c === this._time && (!this._paused || f));) (n._active || n._startTime <= c && !n._paused && !n._gc) && (l === n && this.pause(), n._reversed ? n.render((n._dirty ? n.totalDuration() : n._totalDuration) - (t - n._startTime) * n._timeScale, e, i) : n.render((t - n._startTime) * n._timeScale, e, i)), n = r; else
                                for (n = this._last; n && (r = n._prev, c === this._time && (!this._paused || f));) {
                                    if (n._active || n._startTime <= h && !n._paused && !n._gc) {
                                        if (l === n) {
                                            for (l = n._prev; l && l.endTime() > this._time;) l.render(l._reversed ? l.totalDuration() - (t - l._startTime) * l._timeScale : (t - l._startTime) * l._timeScale, e, i), l = l._prev;
                                            l = null, this.pause()
                                        }
                                        n._reversed ? n.render((n._dirty ? n.totalDuration() : n._totalDuration) - (t - n._startTime) * n._timeScale, e, i) : n.render((t - n._startTime) * n._timeScale, e, i)
                                    }
                                    n = r
                                }
                            this._onUpdate && (e || (y.length && g(), this._callback("onUpdate"))), s && (this._gc || d !== this._startTime && p === this._timeScale || (0 === this._time || u >= this.totalDuration()) && (o && (y.length && g(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !e && this.vars[s] && this._callback(s)))
                        }
                    }, i._hasPausedChild = function () {
                        for (var t = this._first; t;) {
                            if (t._paused || t instanceof p && t._hasPausedChild()) return !0;
                            t = t._next
                        }
                        return !1
                    }, i.getChildren = function (t, e, i, n) {
                        n = n || -9999999999;
                        for (var o = [], r = this._first, s = 0; r;) r._startTime < n || (r instanceof d ? !1 !== e && (o[s++] = r) : (!1 !== i && (o[s++] = r), !1 !== t && (s = (o = o.concat(r.getChildren(!0, e, i))).length))), r = r._next;
                        return o
                    }, i.getTweensOf = function (t, e) {
                        var i, n, o = this._gc, r = [], s = 0;
                        for (o && this._enabled(!0, !0), n = (i = d.getTweensOf(t)).length; -1 < --n;) (i[n].timeline === this || e && this._contains(i[n])) && (r[s++] = i[n]);
                        return o && this._enabled(!1, !0), r
                    }, i.recent = function () {
                        return this._recent
                    }, i._contains = function (t) {
                        for (var e = t.timeline; e;) {
                            if (e === this) return !0;
                            e = e.timeline
                        }
                        return !1
                    }, i.shiftChildren = function (t, e, i) {
                        i = i || 0;
                        for (var n, o = this._first, r = this._labels; o;) o._startTime >= i && (o._startTime += t), o = o._next;
                        if (e)
                            for (n in r) r[n] >= i && (r[n] += t);
                        return this._uncache(!0)
                    }, i._kill = function (t, e) {
                        if (!t && !e) return this._enabled(!1, !1);
                        for (var i = e ? this.getTweensOf(e) : this.getChildren(!0, !0, !1), n = i.length, o = !1; -1 < --n;) i[n]._kill(t, e) && (o = !0);
                        return o
                    }, i.clear = function (t) {
                        var e = this.getChildren(!1, !0, !0), i = e.length;
                        for (this._time = this._totalTime = 0; -1 < --i;) e[i]._enabled(!1, !1);
                        return !1 !== t && (this._labels = {}), this._uncache(!0)
                    }, i.invalidate = function () {
                        for (var t = this._first; t;) t.invalidate(), t = t._next;
                        return h.prototype.invalidate.call(this)
                    }, i._enabled = function (t, e) {
                        if (t === this._gc)
                            for (var i = this._first; i;) i._enabled(t, !0), i = i._next;
                        return u.prototype._enabled.call(this, t, e)
                    }, i.totalTime = function (t, e, i) {
                        this._forcingPlayhead = !0;
                        var n = h.prototype.totalTime.apply(this, arguments);
                        return this._forcingPlayhead = !1, n
                    }, i.duration = function (t) {
                        return arguments.length ? (0 !== this.duration() && 0 !== t && this.timeScale(this._duration / t), this) : (this._dirty && this.totalDuration(), this._duration)
                    }, i.totalDuration = function (t) {
                        if (!arguments.length) {
                            if (this._dirty) {
                                for (var e, i, n = 0, o = this._last, r = 999999999999; o;) e = o._prev, o._dirty && o.totalDuration(), o._startTime > r && this._sortChildren && !o._paused && !this._calculatingDuration ? (this._calculatingDuration = 1, this.add(o, o._startTime - o._delay), this._calculatingDuration = 0) : r = o._startTime, o._startTime < 0 && !o._paused && (n -= o._startTime, this._timeline.smoothChildTiming && (this._startTime += o._startTime / this._timeScale, this._time -= o._startTime, this._totalTime -= o._startTime, this._rawPrevTime -= o._startTime), this.shiftChildren(-o._startTime, !1, -9999999999), r = 0), n < (i = o._startTime + o._totalDuration / o._timeScale) && (n = i), o = e;
                                this._duration = this._totalDuration = n, this._dirty = !1
                            }
                            return this._totalDuration
                        }
                        return t && this.totalDuration() ? this.timeScale(this._totalDuration / t) : this
                    }, i.paused = function (t) {
                        if (!t)
                            for (var e = this._first, i = this._time; e;) e._startTime === i && "isPause" === e.data && (e._rawPrevTime = 0), e = e._next;
                        return h.prototype.paused.apply(this, arguments)
                    }, i.usesFrames = function () {
                        for (var t = this._timeline; t._timeline;) t = t._timeline;
                        return t === h._rootFramesTimeline
                    }, i.rawTime = function (t) {
                        return t && (this._paused || this._repeat && 0 < this.time() && this.totalProgress() < 1) ? this._totalTime % (this._duration + this._repeatDelay) : this._paused ? this._totalTime : (this._timeline.rawTime(t) - this._startTime) * this._timeScale
                    }, p
                }, !0), ne._gsDefine("TimelineMax", ["TimelineLite", "TweenLite", "easing.Ease"], function (e, a, t) {
                    var i = function (t) {
                            e.call(this, t), this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._cycle = 0, this._yoyo = !0 === this.vars.yoyo, this._dirty = !0
                        }, P = 1e-10, n = a._internals, E = n.lazyTweens, A = n.lazyRender, l = ne._gsDefine.globals,
                        c = new t(null, null, 1, 0), o = i.prototype = new e;
                    return o.constructor = i, o.kill()._gc = !1, i.version = "1.20.3", o.invalidate = function () {
                        return this._yoyo = !0 === this.vars.yoyo, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), e.prototype.invalidate.call(this)
                    }, o.addCallback = function (t, e, i, n) {
                        return this.add(a.delayedCall(0, t, i, n), e)
                    }, o.removeCallback = function (t, e) {
                        if (t)
                            if (null == e) this._kill(null, t); else
                                for (var i = this.getTweensOf(t, !1), n = i.length, o = this._parseTimeOrLabel(e); -1 < --n;) i[n]._startTime === o && i[n]._enabled(!1, !1);
                        return this
                    }, o.removePause = function (t) {
                        return this.removeCallback(e._internals.pauseCallback, t)
                    }, o.tweenTo = function (t, e) {
                        e = e || {};
                        var i, n, o, r = {ease: c, useFrames: this.usesFrames(), immediateRender: !1},
                            s = e.repeat && l.TweenMax || a;
                        for (n in e) r[n] = e[n];
                        return r.time = this._parseTimeOrLabel(t), i = Math.abs(Number(r.time) - this._time) / this._timeScale || .001, o = new s(this, i, r), r.onStart = function () {
                            o.target.paused(!0), o.vars.time !== o.target.time() && i === o.duration() && o.duration(Math.abs(o.vars.time - o.target.time()) / o.target._timeScale), e.onStart && e.onStart.apply(e.onStartScope || e.callbackScope || o, e.onStartParams || [])
                        }, o
                    }, o.tweenFromTo = function (t, e, i) {
                        i = i || {}, t = this._parseTimeOrLabel(t), i.startAt = {
                            onComplete: this.seek,
                            onCompleteParams: [t],
                            callbackScope: this
                        }, i.immediateRender = !1 !== i.immediateRender;
                        var n = this.tweenTo(e, i);
                        return n.duration(Math.abs(n.vars.time - t) / this._timeScale || .001)
                    }, o.render = function (t, e, i) {
                        this._gc && this._enabled(!0, !1);
                        var n, o, r, s, a, l, c, h, u = this._time,
                            d = this._dirty ? this.totalDuration() : this._totalDuration, p = this._duration,
                            f = this._totalTime, _ = this._startTime, m = this._timeScale, y = this._rawPrevTime,
                            g = this._paused, v = this._cycle;
                        if (u !== this._time && (t += this._time - u), d - 1e-7 <= t && 0 <= t) this._locked || (this._totalTime = d, this._cycle = this._repeat), this._reversed || this._hasPausedChild() || (o = !0, s = "onComplete", a = !!this._timeline.autoRemoveChildren, 0 === this._duration && (t <= 0 && -1e-7 <= t || y < 0 || y === P) && y !== t && this._first && (a = !0, P < y && (s = "onReverseComplete"))), this._rawPrevTime = this._duration || !e || t || this._rawPrevTime === t ? t : P, this._yoyo && 0 != (1 & this._cycle) ? this._time = t = 0 : t = (this._time = p) + 1e-4; else if (t < 1e-7)
                            if (this._locked || (this._totalTime = this._cycle = 0), ((this._time = 0) !== u || 0 === p && y !== P && (0 < y || t < 0 && 0 <= y) && !this._locked) && (s = "onReverseComplete", o = this._reversed), t < 0) this._active = !1, this._timeline.autoRemoveChildren && this._reversed ? (a = o = !0, s = "onReverseComplete") : 0 <= y && this._first && (a = !0), this._rawPrevTime = t; else {
                                if (this._rawPrevTime = p || !e || t || this._rawPrevTime === t ? t : P, 0 === t && o)
                                    for (n = this._first; n && 0 === n._startTime;) n._duration || (o = !1), n = n._next;
                                t = 0, this._initted || (a = !0)
                            }
                        else if (0 === p && y < 0 && (a = !0), this._time = this._rawPrevTime = t, this._locked || (this._totalTime = t, 0 !== this._repeat && (l = p + this._repeatDelay, this._cycle = this._totalTime / l >> 0, 0 !== this._cycle && this._cycle === this._totalTime / l && f <= t && this._cycle--, this._time = this._totalTime - this._cycle * l, this._yoyo && 0 != (1 & this._cycle) && (this._time = p - this._time), this._time > p ? t = (this._time = p) + 1e-4 : this._time < 0 ? this._time = t = 0 : t = this._time)), this._hasPause && !this._forcingPlayhead && !e) {
                            if (u <= (t = this._time) || this._repeat && v !== this._cycle)
                                for (n = this._first; n && n._startTime <= t && !c;) n._duration || "isPause" !== n.data || n.ratio || 0 === n._startTime && 0 === this._rawPrevTime || (c = n), n = n._next; else
                                for (n = this._last; n && n._startTime >= t && !c;) n._duration || "isPause" === n.data && 0 < n._rawPrevTime && (c = n), n = n._prev;
                            c && c._startTime < p && (this._time = t = c._startTime, this._totalTime = t + this._cycle * (this._totalDuration + this._repeatDelay))
                        }
                        if (this._cycle !== v && !this._locked) {
                            var T = this._yoyo && 0 != (1 & v), b = T === (this._yoyo && 0 != (1 & this._cycle)),
                                w = this._totalTime, x = this._cycle, S = this._rawPrevTime, C = this._time;
                            if (this._totalTime = v * p, this._cycle < v ? T = !T : this._totalTime += p, this._time = u, this._rawPrevTime = 0 === p ? y - 1e-4 : y, this._cycle = v, this._locked = !0, u = T ? 0 : p, this.render(u, e, 0 === p), e || this._gc || this.vars.onRepeat && (this._cycle = x, this._locked = !1, this._callback("onRepeat")), u !== this._time) return;
                            if (b && (this._cycle = v, this._locked = !0, u = T ? p + 1e-4 : -1e-4, this.render(u, !0, !1)), this._locked = !1, this._paused && !g) return;
                            this._time = C, this._totalTime = w, this._cycle = x, this._rawPrevTime = S
                        }
                        if (this._time !== u && this._first || i || a || c) {
                            if (this._initted || (this._initted = !0), this._active || !this._paused && this._totalTime !== f && 0 < t && (this._active = !0), 0 === f && this.vars.onStart && (0 === this._totalTime && this._totalDuration || e || this._callback("onStart")), u <= (h = this._time))
                                for (n = this._first; n && (r = n._next, h === this._time && (!this._paused || g));) (n._active || n._startTime <= this._time && !n._paused && !n._gc) && (c === n && this.pause(), n._reversed ? n.render((n._dirty ? n.totalDuration() : n._totalDuration) - (t - n._startTime) * n._timeScale, e, i) : n.render((t - n._startTime) * n._timeScale, e, i)), n = r; else
                                for (n = this._last; n && (r = n._prev, h === this._time && (!this._paused || g));) {
                                    if (n._active || n._startTime <= u && !n._paused && !n._gc) {
                                        if (c === n) {
                                            for (c = n._prev; c && c.endTime() > this._time;) c.render(c._reversed ? c.totalDuration() - (t - c._startTime) * c._timeScale : (t - c._startTime) * c._timeScale, e, i), c = c._prev;
                                            c = null, this.pause()
                                        }
                                        n._reversed ? n.render((n._dirty ? n.totalDuration() : n._totalDuration) - (t - n._startTime) * n._timeScale, e, i) : n.render((t - n._startTime) * n._timeScale, e, i)
                                    }
                                    n = r
                                }
                            this._onUpdate && (e || (E.length && A(), this._callback("onUpdate"))), s && (this._locked || this._gc || _ !== this._startTime && m === this._timeScale || (0 === this._time || d >= this.totalDuration()) && (o && (E.length && A(), this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !e && this.vars[s] && this._callback(s)))
                        } else f !== this._totalTime && this._onUpdate && (e || this._callback("onUpdate"))
                    }, o.getActive = function (t, e, i) {
                        null == t && (t = !0), null == e && (e = !0), null == i && (i = !1);
                        var n, o, r = [], s = this.getChildren(t, e, i), a = 0, l = s.length;
                        for (n = 0; n < l; n++) (o = s[n]).isActive() && (r[a++] = o);
                        return r
                    }, o.getLabelAfter = function (t) {
                        t || 0 !== t && (t = this._time);
                        var e, i = this.getLabelsArray(), n = i.length;
                        for (e = 0; e < n; e++)
                            if (i[e].time > t) return i[e].name;
                        return null
                    }, o.getLabelBefore = function (t) {
                        null == t && (t = this._time);
                        for (var e = this.getLabelsArray(), i = e.length; -1 < --i;)
                            if (e[i].time < t) return e[i].name;
                        return null
                    }, o.getLabelsArray = function () {
                        var t, e = [], i = 0;
                        for (t in this._labels) e[i++] = {time: this._labels[t], name: t};
                        return e.sort(function (t, e) {
                            return t.time - e.time
                        }), e
                    }, o.invalidate = function () {
                        return this._locked = !1, e.prototype.invalidate.call(this)
                    }, o.progress = function (t, e) {
                        return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 != (1 & this._cycle) ? 1 - t : t) + this._cycle * (this._duration + this._repeatDelay), e) : this._time / this.duration() || 0
                    }, o.totalProgress = function (t, e) {
                        return arguments.length ? this.totalTime(this.totalDuration() * t, e) : this._totalTime / this.totalDuration() || 0
                    }, o.totalDuration = function (t) {
                        return arguments.length ? -1 !== this._repeat && t ? this.timeScale(this.totalDuration() / t) : this : (this._dirty && (e.prototype.totalDuration.call(this), this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), this._totalDuration)
                    }, o.time = function (t, e) {
                        return arguments.length ? (this._dirty && this.totalDuration(), t > this._duration && (t = this._duration), this._yoyo && 0 != (1 & this._cycle) ? t = this._duration - t + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (t += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(t, e)) : this._time
                    }, o.repeat = function (t) {
                        return arguments.length ? (this._repeat = t, this._uncache(!0)) : this._repeat
                    }, o.repeatDelay = function (t) {
                        return arguments.length ? (this._repeatDelay = t, this._uncache(!0)) : this._repeatDelay
                    }, o.yoyo = function (t) {
                        return arguments.length ? (this._yoyo = t, this) : this._yoyo
                    }, o.currentLabel = function (t) {
                        return arguments.length ? this.seek(t, !0) : this.getLabelBefore(this._time + 1e-8)
                    }, i
                }, !0), x = 180 / Math.PI, b = [], w = [], S = [], y = {}, i = ne._gsDefine.globals, g = function (t, e, i, n) {
                    i === n && (i = n - (n - e) / 1e6), t === e && (e = t + (i - t) / 1e6), this.a = t, this.b = e, this.c = i, this.d = n, this.da = n - t, this.ca = i - t, this.ba = e - t
                }, C = function (t, e, i, n) {
                    var o = {a: t}, r = {}, s = {}, a = {c: n}, l = (t + e) / 2, c = (e + i) / 2, h = (i + n) / 2,
                        u = (l + c) / 2, d = (c + h) / 2, p = (d - u) / 8;
                    return o.b = l + (t - l) / 4, r.b = u + p, o.c = r.a = (o.b + r.b) / 2, r.c = s.a = (u + d) / 2, s.b = d - p, a.b = h + (n - h) / 4, s.c = a.a = (s.b + a.b) / 2, [o, r, s, a]
                }, v = function (t, e, i, n, o) {
                    var r, s, a, l, c, h, u, d, p, f, _, m, y, g = t.length - 1, v = 0, T = t[0].a;
                    for (r = 0; r < g; r++) s = (c = t[v]).a, a = c.d, l = t[v + 1].d, o ? (_ = b[r], y = ((m = w[r]) + _) * e * .25 / (n ? .5 : S[r] || .5), d = a - ((h = a - (a - s) * (n ? .5 * e : 0 !== _ ? y / _ : 0)) + (((u = a + (l - a) * (n ? .5 * e : 0 !== m ? y / m : 0)) - h) * (3 * _ / (_ + m) + .5) / 4 || 0))) : d = a - ((h = a - (a - s) * e * .5) + (u = a + (l - a) * e * .5)) / 2, h += d, u += d, c.c = p = h, c.b = 0 !== r ? T : T = c.a + .6 * (c.c - c.a), c.da = a - s, c.ca = p - s, c.ba = T - s, i ? (f = C(s, T, p, a), t.splice(v, 1, f[0], f[1], f[2], f[3]), v += 4) : v++, T = u;
                    (c = t[v]).b = T, c.c = T + .4 * (c.d - T), c.da = c.d - c.a, c.ca = c.c - c.a, c.ba = T - c.a, i && (f = C(c.a, T, c.c, c.d), t.splice(v, 1, f[0], f[1], f[2], f[3]))
                }, T = function (t, e, i, n) {
                    var o, r, s, a, l, c, h = [];
                    if (n)
                        for (r = (t = [n].concat(t)).length; -1 < --r;) "string" == typeof(c = t[r][e]) && "=" === c.charAt(1) && (t[r][e] = n[e] + Number(c.charAt(0) + c.substr(2)));
                    if ((o = t.length - 2) < 0) return h[0] = new g(t[0][e], 0, 0, t[0][e]), h;
                    for (r = 0; r < o; r++) s = t[r][e], a = t[r + 1][e], h[r] = new g(s, 0, 0, a), i && (l = t[r + 2][e], b[r] = (b[r] || 0) + (a - s) * (a - s), w[r] = (w[r] || 0) + (l - a) * (l - a));
                    return h[r] = new g(t[r][e], 0, 0, t[r + 1][e]), h
                }, p = function (t, e, i, n, o, r) {
                    var s, a, l, c, h, u, d, p, f = {}, _ = [], m = r || t[0];
                    for (a in o = "string" == typeof o ? "," + o + "," : ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,", null == e && (e = 1), t[0]) _.push(a);
                    if (1 < t.length) {
                        for (p = t[t.length - 1], d = !0, s = _.length; -1 < --s;)
                            if (a = _[s], .05 < Math.abs(m[a] - p[a])) {
                                d = !1;
                                break
                            }
                        d && (t = t.concat(), r && t.unshift(r), t.push(t[1]), r = t[t.length - 3])
                    }
                    for (b.length = w.length = S.length = 0, s = _.length; -1 < --s;) a = _[s], y[a] = -1 !== o.indexOf("," + a + ","), f[a] = T(t, a, y[a], r);
                    for (s = b.length; -1 < --s;) b[s] = Math.sqrt(b[s]), w[s] = Math.sqrt(w[s]);
                    if (!n) {
                        for (s = _.length; -1 < --s;)
                            if (y[a])
                                for (u = (l = f[_[s]]).length - 1, c = 0; c < u; c++) h = l[c + 1].da / w[c] + l[c].da / b[c] || 0, S[c] = (S[c] || 0) + h * h;
                        for (s = S.length; -1 < --s;) S[s] = Math.sqrt(S[s])
                    }
                    for (s = _.length, c = i ? 4 : 1; -1 < --s;) l = f[a = _[s]], v(l, e, i, n, y[a]), d && (l.splice(0, c), l.splice(l.length - c, c));
                    return f
                }, f = function (t, e, i) {
                    for (var n, o, r, s, a, l, c, h, u, d, p, f = 1 / i, _ = t.length; -1 < --_;)
                        for (r = (d = t[_]).a, s = d.d - r, a = d.c - r, l = d.b - r, n = o = 0, h = 1; h <= i; h++) n = o - (o = ((c = f * h) * c * s + 3 * (u = 1 - c) * (c * a + u * l)) * c), e[p = _ * i + h - 1] = (e[p] || 0) + n * n
                }, m = ne._gsDefine.plugin({
                    propName: "bezier", priority: -1, version: "1.3.8", API: 2, global: !0, init: function (t, e, i) {
                        this._target = t, e instanceof Array && (e = {values: e}), this._func = {}, this._mod = {}, this._props = [], this._timeRes = null == e.timeResolution ? 6 : parseInt(e.timeResolution, 10);
                        var n, o, r, s, a, l = e.values || [], c = {}, h = l[0],
                            u = e.autoRotate || i.vars.orientToBezier;
                        for (n in this._autoRotate = u ? u instanceof Array ? u : [["x", "y", "rotation", !0 === u ? 0 : Number(u) || 0]] : null, h) this._props.push(n);
                        for (r = this._props.length; -1 < --r;) n = this._props[r], this._overwriteProps.push(n), o = this._func[n] = "function" == typeof t[n], c[n] = o ? t[n.indexOf("set") || "function" != typeof t["get" + n.substr(3)] ? n : "get" + n.substr(3)]() : parseFloat(t[n]), a || c[n] !== l[0][n] && (a = c);
                        if (this._beziers = "cubic" !== e.type && "quadratic" !== e.type && "soft" !== e.type ? p(l, isNaN(e.curviness) ? 1 : e.curviness, !1, "thruBasic" === e.type, e.correlate, a) : function (t, e, i) {
                            var n, o, r, s, a, l, c, h, u, d, p, f = {}, _ = "cubic" === (e = e || "soft") ? 3 : 2,
                                m = "soft" === e, y = [];
                            if (m && i && (t = [i].concat(t)), null == t || t.length < _ + 1) throw"invalid Bezier data";
                            for (u in t[0]) y.push(u);
                            for (l = y.length; -1 < --l;) {
                                for (f[u = y[l]] = a = [], d = 0, h = t.length, c = 0; c < h; c++) n = null == i ? t[c][u] : "string" == typeof(p = t[c][u]) && "=" === p.charAt(1) ? i[u] + Number(p.charAt(0) + p.substr(2)) : Number(p), m && 1 < c && c < h - 1 && (a[d++] = (n + a[d - 2]) / 2), a[d++] = n;
                                for (h = d - _ + 1, c = d = 0; c < h; c += _) n = a[c], o = a[c + 1], r = a[c + 2], s = 2 === _ ? 0 : a[c + 3], a[d++] = p = 3 === _ ? new g(n, o, r, s) : new g(n, (2 * o + n) / 3, (2 * o + r) / 3, r);
                                a.length = d
                            }
                            return f
                        }(l, e.type, c), this._segCount = this._beziers[n].length, this._timeRes) {
                            var d = function (t, e) {
                                var i, n, o, r, s = [], a = [], l = 0, c = 0, h = (e = e >> 0 || 6) - 1, u = [], d = [];
                                for (i in t) f(t[i], s, e);
                                for (o = s.length, n = 0; n < o; n++) l += Math.sqrt(s[n]), d[r = n % e] = l, r === h && (c += l, u[r = n / e >> 0] = d, a[r] = c, l = 0, d = []);
                                return {length: c, lengths: a, segments: u}
                            }(this._beziers, this._timeRes);
                            this._length = d.length, this._lengths = d.lengths, this._segments = d.segments, this._l1 = this._li = this._s1 = this._si = 0, this._l2 = this._lengths[0], this._curSeg = this._segments[0], this._s2 = this._curSeg[0], this._prec = 1 / this._curSeg.length
                        }
                        if (u = this._autoRotate)
                            for (this._initialRotations = [], u[0] instanceof Array || (this._autoRotate = u = [u]), r = u.length; -1 < --r;) {
                                for (s = 0; s < 3; s++) n = u[r][s], this._func[n] = "function" == typeof t[n] && t[n.indexOf("set") || "function" != typeof t["get" + n.substr(3)] ? n : "get" + n.substr(3)];
                                n = u[r][2], this._initialRotations[r] = (this._func[n] ? this._func[n].call(this._target) : this._target[n]) || 0, this._overwriteProps.push(n)
                            }
                        return this._startRatio = i.vars.runBackwards ? 1 : 0, !0
                    }, set: function (t) {
                        var e, i, n, o, r, s, a, l, c, h, u = this._segCount, d = this._func, p = this._target,
                            f = t !== this._startRatio;
                        if (this._timeRes) {
                            if (c = this._lengths, h = this._curSeg, t *= this._length, n = this._li, t > this._l2 && n < u - 1) {
                                for (l = u - 1; n < l && (this._l2 = c[++n]) <= t;) ;
                                this._l1 = c[n - 1], this._li = n, this._curSeg = h = this._segments[n], this._s2 = h[this._s1 = this._si = 0]
                            } else if (t < this._l1 && 0 < n) {
                                for (; 0 < n && (this._l1 = c[--n]) >= t;) ;
                                0 === n && t < this._l1 ? this._l1 = 0 : n++, this._l2 = c[n], this._li = n, this._curSeg = h = this._segments[n], this._s1 = h[(this._si = h.length - 1) - 1] || 0, this._s2 = h[this._si]
                            }
                            if (e = n, t -= this._l1, n = this._si, t > this._s2 && n < h.length - 1) {
                                for (l = h.length - 1; n < l && (this._s2 = h[++n]) <= t;) ;
                                this._s1 = h[n - 1], this._si = n
                            } else if (t < this._s1 && 0 < n) {
                                for (; 0 < n && (this._s1 = h[--n]) >= t;) ;
                                0 === n && t < this._s1 ? this._s1 = 0 : n++, this._s2 = h[n], this._si = n
                            }
                            s = (n + (t - this._s1) / (this._s2 - this._s1)) * this._prec || 0
                        } else s = (t - (e = t < 0 ? 0 : 1 <= t ? u - 1 : u * t >> 0) * (1 / u)) * u;
                        for (i = 1 - s, n = this._props.length; -1 < --n;) o = this._props[n], a = (s * s * (r = this._beziers[o][e]).da + 3 * i * (s * r.ca + i * r.ba)) * s + r.a, this._mod[o] && (a = this._mod[o](a, p)), d[o] ? p[o](a) : p[o] = a;
                        if (this._autoRotate) {
                            var _, m, y, g, v, T, b, w = this._autoRotate;
                            for (n = w.length; -1 < --n;) o = w[n][2], T = w[n][3] || 0, b = !0 === w[n][4] ? 1 : x, r = this._beziers[w[n][0]], _ = this._beziers[w[n][1]], r && _ && (r = r[e], _ = _[e], m = r.a + (r.b - r.a) * s, m += ((g = r.b + (r.c - r.b) * s) - m) * s, g += (r.c + (r.d - r.c) * s - g) * s, y = _.a + (_.b - _.a) * s, y += ((v = _.b + (_.c - _.b) * s) - y) * s, v += (_.c + (_.d - _.c) * s - v) * s, a = f ? Math.atan2(v - y, g - m) * b + T : this._initialRotations[n], this._mod[o] && (a = this._mod[o](a, p)), d[o] ? p[o](a) : p[o] = a)
                        }
                    }
                }), t = m.prototype, m.bezierThrough = p, m.cubicToQuadratic = C, m._autoCSS = !0, m.quadraticToCubic = function (t, e, i) {
                    return new g(t, (2 * e + t) / 3, (2 * e + i) / 3, i)
                }, m._cssRegister = function () {
                    var t = i.CSSPlugin;
                    if (t) {
                        var e = t._internals, p = e._parseToProxy, f = e._setPluginRatio, _ = e.CSSPropTween;
                        e._registerComplexSpecialProp("bezier", {
                            parser: function (t, e, i, n, o, r) {
                                e instanceof Array && (e = {values: e}), r = new m;
                                var s, a, l, c = e.values, h = c.length - 1, u = [], d = {};
                                if (h < 0) return o;
                                for (s = 0; s <= h; s++) l = p(t, c[s], n, o, r, h !== s), u[s] = l.end;
                                for (a in e) d[a] = e[a];
                                return d.values = u, (o = new _(t, "bezier", 0, 0, l.pt, 2)).data = l, o.plugin = r, o.setRatio = f, 0 === d.autoRotate && (d.autoRotate = !0), !d.autoRotate || d.autoRotate instanceof Array || (s = !0 === d.autoRotate ? 0 : Number(d.autoRotate), d.autoRotate = null != l.end.left ? [["left", "top", "rotation", s, !1]] : null != l.end.x && [["x", "y", "rotation", s, !1]]), d.autoRotate && (n._transform || n._enableTransforms(!1), l.autoRotate = n._target._gsTransform, l.proxy.rotation = l.autoRotate.rotation || 0, n._overwriteProps.push("rotation")), r._onInitTween(l.proxy, d, n._tween), o
                            }
                        })
                    }
                }, t._mod = function (t) {
                    for (var e, i = this._overwriteProps, n = i.length; -1 < --n;) (e = t[i[n]]) && "function" == typeof e && (this._mod[i[n]] = e)
                }, t._kill = function (t) {
                    var e, i, n = this._props;
                    for (e in this._beziers)
                        if (e in t)
                            for (delete this._beziers[e], delete this._func[e], i = n.length; -1 < --i;) n[i] === e && n.splice(i, 1);
                    if (n = this._autoRotate)
                        for (i = n.length; -1 < --i;) t[n[i][2]] && n.splice(i, 1);
                    return this._super._kill.call(this, t)
                }, e = ne._gsDefine.plugin({
                    propName: "roundProps",
                    version: "1.6.0",
                    priority: -1,
                    API: 2,
                    init: function (t, e, i) {
                        return this._tween = i, !0
                    }
                }), l = function (t) {
                    for (; t;) t.f || t.blob || (t.m = Math.round), t = t._next
                }, (n = e.prototype)._onInitAllProps = function () {
                    for (var t, e, i, n = this._tween, o = n.vars.roundProps.join ? n.vars.roundProps : n.vars.roundProps.split(","), r = o.length, s = {}, a = n._propLookup.roundProps; -1 < --r;) s[o[r]] = Math.round;
                    for (r = o.length; -1 < --r;)
                        for (t = o[r], e = n._firstPT; e;) i = e._next, e.pg ? e.t._mod(s) : e.n === t && (2 === e.f && e.t ? l(e.t._firstPT) : (this._add(e.t, t, e.s, e.c), i && (i._prev = e._prev), e._prev ? e._prev._next = i : n._firstPT === e && (n._firstPT = i), e._next = e._prev = null, n._propLookup[t] = a)), e = i;
                    return !1
                }, n._add = function (t, e, i, n) {
                    this._addTween(t, e, i, i + n, e, Math.round), this._overwriteProps.push(e)
                }, ne._gsDefine.plugin({
                    propName: "attr", API: 2, version: "0.6.1", init: function (t, e, i, n) {
                        var o, r;
                        if ("function" != typeof t.setAttribute) return !1;
                        for (o in e) "function" == typeof(r = e[o]) && (r = r(n, t)), this._addTween(t, "setAttribute", t.getAttribute(o) + "", r + "", o, !1, o), this._overwriteProps.push(o);
                        return !0
                    }
                }), ne._gsDefine.plugin({
                    propName: "directionalRotation", version: "0.3.1", API: 2, init: function (t, e, i, n) {
                        "object" != typeof e && (e = {rotation: e}), this.finals = {};
                        var o, r, s, a, l, c, h = !0 === e.useRadians ? 2 * Math.PI : 360;
                        for (o in e) "useRadians" !== o && ("function" == typeof(a = e[o]) && (a = a(n, t)), r = (c = (a + "").split("_"))[0], s = parseFloat("function" != typeof t[o] ? t[o] : t[o.indexOf("set") || "function" != typeof t["get" + o.substr(3)] ? o : "get" + o.substr(3)]()), l = (a = this.finals[o] = "string" == typeof r && "=" === r.charAt(1) ? s + parseInt(r.charAt(0) + "1", 10) * Number(r.substr(2)) : Number(r) || 0) - s, c.length && (-1 !== (r = c.join("_")).indexOf("short") && (l %= h) !== l % (h / 2) && (l = l < 0 ? l + h : l - h), -1 !== r.indexOf("_cw") && l < 0 ? l = (l + 9999999999 * h) % h - (l / h | 0) * h : -1 !== r.indexOf("ccw") && 0 < l && (l = (l - 9999999999 * h) % h - (l / h | 0) * h)), (1e-6 < l || l < -1e-6) && (this._addTween(t, o, s, s + l, o), this._overwriteProps.push(o)));
                        return !0
                    }, set: function (t) {
                        var e;
                        if (1 !== t) this._super.setRatio.call(this, t); else
                            for (e = this._firstPT; e;) e.f ? e.t[e.p](this.finals[e.p]) : e.t[e.p] = this.finals[e.p], e = e._next
                    }
                })._autoCSS = !0, ne._gsDefine("easing.Back", ["easing.Ease"], function (m) {
                    var i, e, t, n = ne.GreenSockGlobals || ne, o = n.com.greensock, r = 2 * Math.PI, s = Math.PI / 2,
                        a = o._class, l = function (t, e) {
                            var i = a("easing." + t, function () {
                            }, !0), n = i.prototype = new m;
                            return n.constructor = i, n.getRatio = e, i
                        }, c = m.register || function () {
                        }, h = function (t, e, i, n, o) {
                            var r = a("easing." + t, {easeOut: new e, easeIn: new i, easeInOut: new n}, !0);
                            return c(r, t), r
                        }, y = function (t, e, i) {
                            this.t = t, this.v = e, i && (((this.next = i).prev = this).c = i.v - e, this.gap = i.t - t)
                        }, u = function (t, e) {
                            var i = a("easing." + t, function (t) {
                                this._p1 = t || 0 === t ? t : 1.70158, this._p2 = 1.525 * this._p1
                            }, !0), n = i.prototype = new m;
                            return n.constructor = i, n.getRatio = e, n.config = function (t) {
                                return new i(t)
                            }, i
                        }, d = h("Back", u("BackOut", function (t) {
                            return (t -= 1) * t * ((this._p1 + 1) * t + this._p1) + 1
                        }), u("BackIn", function (t) {
                            return t * t * ((this._p1 + 1) * t - this._p1)
                        }), u("BackInOut", function (t) {
                            return (t *= 2) < 1 ? .5 * t * t * ((this._p2 + 1) * t - this._p2) : .5 * ((t -= 2) * t * ((this._p2 + 1) * t + this._p2) + 2)
                        })), p = a("easing.SlowMo", function (t, e, i) {
                            e = e || 0 === e ? e : .7, null == t ? t = .7 : 1 < t && (t = 1), this._p = 1 !== t ? e : 0, this._p1 = (1 - t) / 2, this._p2 = t, this._p3 = this._p1 + this._p2, this._calcEnd = !0 === i
                        }, !0), f = p.prototype = new m;
                    return f.constructor = p, f.getRatio = function (t) {
                        var e = t + (.5 - t) * this._p;
                        return t < this._p1 ? this._calcEnd ? 1 - (t = 1 - t / this._p1) * t : e - (t = 1 - t / this._p1) * t * t * t * e : t > this._p3 ? this._calcEnd ? 1 === t ? 0 : 1 - (t = (t - this._p3) / this._p1) * t : e + (t - e) * (t = (t - this._p3) / this._p1) * t * t * t : this._calcEnd ? 1 : e
                    }, p.ease = new p(.7, .7), f.config = p.config = function (t, e, i) {
                        return new p(t, e, i)
                    }, (f = (i = a("easing.SteppedEase", function (t, e) {
                        t = t || 1, this._p1 = 1 / t, this._p2 = t + (e ? 0 : 1), this._p3 = e ? 1 : 0
                    }, !0)).prototype = new m).constructor = i, f.getRatio = function (t) {
                        return t < 0 ? t = 0 : 1 <= t && (t = .999999999), ((this._p2 * t | 0) + this._p3) * this._p1
                    }, f.config = i.config = function (t, e) {
                        return new i(t, e)
                    }, (f = (e = a("easing.RoughEase", function (t) {
                        for (var e, i, n, o, r, s, a = (t = t || {}).taper || "none", l = [], c = 0, h = 0 | (t.points || 20), u = h, d = !1 !== t.randomize, p = !0 === t.clamp, f = t.template instanceof m ? t.template : null, _ = "number" == typeof t.strength ? .4 * t.strength : .4; -1 < --u;) e = d ? Math.random() : 1 / h * u, i = f ? f.getRatio(e) : e, n = "none" === a ? _ : "out" === a ? (o = 1 - e) * o * _ : "in" === a ? e * e * _ : e < .5 ? (o = 2 * e) * o * .5 * _ : (o = 2 * (1 - e)) * o * .5 * _, d ? i += Math.random() * n - .5 * n : u % 2 ? i += .5 * n : i -= .5 * n, p && (1 < i ? i = 1 : i < 0 && (i = 0)), l[c++] = {
                            x: e,
                            y: i
                        };
                        for (l.sort(function (t, e) {
                            return t.x - e.x
                        }), s = new y(1, 1, null), u = h; -1 < --u;) r = l[u], s = new y(r.x, r.y, s);
                        this._prev = new y(0, 0, 0 !== s.t ? s : s.next)
                    }, !0)).prototype = new m).constructor = e, f.getRatio = function (t) {
                        var e = this._prev;
                        if (t > e.t) {
                            for (; e.next && t >= e.t;) e = e.next;
                            e = e.prev
                        } else
                            for (; e.prev && t <= e.t;) e = e.prev;
                        return (this._prev = e).v + (t - e.t) / e.gap * e.c
                    }, f.config = function (t) {
                        return new e(t)
                    }, e.ease = new e, h("Bounce", l("BounceOut", function (t) {
                        return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375
                    }), l("BounceIn", function (t) {
                        return (t = 1 - t) < 1 / 2.75 ? 1 - 7.5625 * t * t : t < 2 / 2.75 ? 1 - (7.5625 * (t -= 1.5 / 2.75) * t + .75) : t < 2.5 / 2.75 ? 1 - (7.5625 * (t -= 2.25 / 2.75) * t + .9375) : 1 - (7.5625 * (t -= 2.625 / 2.75) * t + .984375)
                    }), l("BounceInOut", function (t) {
                        var e = t < .5;
                        return (t = e ? 1 - 2 * t : 2 * t - 1) < 1 / 2.75 ? t *= 7.5625 * t : t = t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375, e ? .5 * (1 - t) : .5 * t + .5
                    })), h("Circ", l("CircOut", function (t) {
                        return Math.sqrt(1 - (t -= 1) * t)
                    }), l("CircIn", function (t) {
                        return -(Math.sqrt(1 - t * t) - 1)
                    }), l("CircInOut", function (t) {
                        return (t *= 2) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1)
                    })), h("Elastic", (t = function (t, e, i) {
                        var n = a("easing." + t, function (t, e) {
                            this._p1 = 1 <= t ? t : 1, this._p2 = (e || i) / (t < 1 ? t : 1), this._p3 = this._p2 / r * (Math.asin(1 / this._p1) || 0), this._p2 = r / this._p2
                        }, !0), o = n.prototype = new m;
                        return o.constructor = n, o.getRatio = e, o.config = function (t, e) {
                            return new n(t, e)
                        }, n
                    })("ElasticOut", function (t) {
                        return this._p1 * Math.pow(2, -10 * t) * Math.sin((t - this._p3) * this._p2) + 1
                    }, .3), t("ElasticIn", function (t) {
                        return -this._p1 * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - this._p3) * this._p2)
                    }, .3), t("ElasticInOut", function (t) {
                        return (t *= 2) < 1 ? this._p1 * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - this._p3) * this._p2) * -.5 : this._p1 * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - this._p3) * this._p2) * .5 + 1
                    }, .45)), h("Expo", l("ExpoOut", function (t) {
                        return 1 - Math.pow(2, -10 * t)
                    }), l("ExpoIn", function (t) {
                        return Math.pow(2, 10 * (t - 1)) - .001
                    }), l("ExpoInOut", function (t) {
                        return (t *= 2) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * (t - 1)))
                    })), h("Sine", l("SineOut", function (t) {
                        return Math.sin(t * s)
                    }), l("SineIn", function (t) {
                        return 1 - Math.cos(t * s)
                    }), l("SineInOut", function (t) {
                        return -.5 * (Math.cos(Math.PI * t) - 1)
                    })), a("easing.EaseLookup", {
                        find: function (t) {
                            return m.map[t]
                        }
                    }, !0), c(n.SlowMo, "SlowMo", "ease,"), c(e, "RoughEase", "ease,"), c(i, "SteppedEase", "ease,"), d
                }, !0)
            }), ne._gsDefine && ne._gsQueue.pop()(), function (d, p) {
                "use strict";
                var f = {}, n = d.document, _ = d.GreenSockGlobals = d.GreenSockGlobals || d;
                if (!_.TweenLite) {
                    var t, e, i, m, y, o, r, g = function (t) {
                        var e, i = t.split("."), n = _;
                        for (e = 0; e < i.length; e++) n[i[e]] = n = n[i[e]] || {};
                        return n
                    }, u = g("com.greensock"), v = 1e-10, l = function (t) {
                        var e, i = [], n = t.length;
                        for (e = 0; e !== n; i.push(t[e++])) ;
                        return i
                    }, T = function () {
                    }, b = (o = Object.prototype.toString, r = o.call([]), function (t) {
                        return null != t && (t instanceof Array || "object" == typeof t && !!t.push && o.call(t) === r)
                    }), w = {}, x = function (a, l, c, h) {
                        this.sc = w[a] ? w[a].sc : [], (w[a] = this).gsClass = null, this.func = c;
                        var u = [];
                        this.check = function (t) {
                            for (var e, i, n, o, r = l.length, s = r; -1 < --r;) (e = w[l[r]] || new x(l[r], [])).gsClass ? (u[r] = e.gsClass, s--) : t && e.sc.push(this);
                            if (0 === s && c) {
                                if (n = (i = ("com.greensock." + a).split(".")).pop(), o = g(i.join("."))[n] = this.gsClass = c.apply(c, u), h)
                                    if (_[n] = f[n] = o, void 0 !== ot && ot.exports)
                                        if (a === p)
                                            for (r in ot.exports = f[p] = o, f) o[r] = f[r]; else f[p] && (f[p][n] = o); else "function" == typeof define && define.amd && define((d.GreenSockAMDPath ? d.GreenSockAMDPath + "/" : "") + a.split(".").pop(), [], function () {
                                        return o
                                    });
                                for (r = 0; r < this.sc.length; r++) this.sc[r].check()
                            }
                        }, this.check(!0)
                    }, s = d._gsDefine = function (t, e, i, n) {
                        return new x(t, e, i, n)
                    }, S = u._class = function (t, e, i) {
                        return e = e || function () {
                        }, s(t, [], function () {
                            return e
                        }, i), e
                    };
                    s.globals = _;
                    var a = [0, 0, 1, 1], C = S("easing.Ease", function (t, e, i, n) {
                        this._func = t, this._type = i || 0, this._power = n || 0, this._params = e ? a.concat(e) : a
                    }, !0), P = C.map = {}, c = C.register = function (t, e, i, n) {
                        for (var o, r, s, a, l = e.split(","), c = l.length, h = (i || "easeIn,easeOut,easeInOut").split(","); -1 < --c;)
                            for (r = l[c], o = n ? S("easing." + r, null, !0) : u.easing[r] || {}, s = h.length; -1 < --s;) a = h[s], P[r + "." + a] = P[a + r] = o[a] = t.getRatio ? t : t[a] || new t
                    };
                    for ((i = C.prototype)._calcEnd = !1, i.getRatio = function (t) {
                        if (this._func) return this._params[0] = t, this._func.apply(null, this._params);
                        var e = this._type, i = this._power,
                            n = 1 === e ? 1 - t : 2 === e ? t : t < .5 ? 2 * t : 2 * (1 - t);
                        return 1 === i ? n *= n : 2 === i ? n *= n * n : 3 === i ? n *= n * n * n : 4 === i && (n *= n * n * n * n), 1 === e ? 1 - n : 2 === e ? n : t < .5 ? n / 2 : 1 - n / 2
                    }, e = (t = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"]).length; -1 < --e;) i = t[e] + ",Power" + e, c(new C(null, null, 1, e), i, "easeOut", !0), c(new C(null, null, 2, e), i, "easeIn" + (0 === e ? ",easeNone" : "")), c(new C(null, null, 3, e), i, "easeInOut");
                    P.linear = u.easing.Linear.easeIn, P.swing = u.easing.Quad.easeInOut;
                    var E = S("events.EventDispatcher", function (t) {
                        this._listeners = {}, this._eventTarget = t || this
                    });
                    (i = E.prototype).addEventListener = function (t, e, i, n, o) {
                        o = o || 0;
                        var r, s, a = this._listeners[t], l = 0;
                        for (this !== m || y || m.wake(), null == a && (this._listeners[t] = a = []), s = a.length; -1 < --s;) (r = a[s]).c === e && r.s === i ? a.splice(s, 1) : 0 === l && r.pr < o && (l = s + 1);
                        a.splice(l, 0, {c: e, s: i, up: n, pr: o})
                    }, i.removeEventListener = function (t, e) {
                        var i, n = this._listeners[t];
                        if (n)
                            for (i = n.length; -1 < --i;)
                                if (n[i].c === e) return void n.splice(i, 1)
                    }, i.dispatchEvent = function (t) {
                        var e, i, n, o = this._listeners[t];
                        if (o)
                            for (1 < (e = o.length) && (o = o.slice(0)), i = this._eventTarget; -1 < --e;) (n = o[e]) && (n.up ? n.c.call(n.s || i, {
                                type: t,
                                target: i
                            }) : n.c.call(n.s || i))
                    };
                    var A = d.requestAnimationFrame, O = d.cancelAnimationFrame, M = Date.now || function () {
                        return (new Date).getTime()
                    }, B = M();
                    for (e = (t = ["ms", "moz", "webkit", "o"]).length; -1 < --e && !A;) A = d[t[e] + "RequestAnimationFrame"], O = d[t[e] + "CancelAnimationFrame"] || d[t[e] + "CancelRequestAnimationFrame"];
                    S("Ticker", function (t, e) {
                        var o, r, s, a, l, c = this, h = M(), i = !(!1 === e || !A) && "auto", u = 500, d = 33,
                            p = function (t) {
                                var e, i, n = M() - B;
                                u < n && (h += n - d), B += n, c.time = (B - h) / 1e3, e = c.time - l, (!o || 0 < e || !0 === t) && (c.frame++, l += e + (a <= e ? .004 : a - e), i = !0), !0 !== t && (s = r(p)), i && c.dispatchEvent("tick")
                            };
                        E.call(c), c.time = c.frame = 0, c.tick = function () {
                            p(!0)
                        }, c.lagSmoothing = function (t, e) {
                            if (!arguments.length) return u < 1e10;
                            u = t || 1e10, d = Math.min(e, u, 0)
                        }, c.sleep = function () {
                            null != s && (i && O ? O(s) : clearTimeout(s), r = T, s = null, c === m && (y = !1))
                        }, c.wake = function (t) {
                            null !== s ? c.sleep() : t ? h += -B + (B = M()) : 10 < c.frame && (B = M() - u + 5), r = 0 === o ? T : i && A ? A : function (t) {
                                return setTimeout(t, 1e3 * (l - c.time) + 1 | 0)
                            }, c === m && (y = !0), p(2)
                        }, c.fps = function (t) {
                            if (!arguments.length) return o;
                            a = 1 / ((o = t) || 60), l = this.time + a, c.wake()
                        }, c.useRAF = function (t) {
                            if (!arguments.length) return i;
                            c.sleep(), i = t, c.fps(o)
                        }, c.fps(t), setTimeout(function () {
                            "auto" === i && c.frame < 5 && "hidden" !== n.visibilityState && c.useRAF(!1)
                        }, 1500)
                    }), (i = u.Ticker.prototype = new u.events.EventDispatcher).constructor = u.Ticker;
                    var h = S("core.Animation", function (t, e) {
                        if (this.vars = e = e || {}, this._duration = this._totalDuration = t || 0, this._delay = Number(e.delay) || 0, this._timeScale = 1, this._active = !0 === e.immediateRender, this.data = e.data, this._reversed = !0 === e.reversed, J) {
                            y || m.wake();
                            var i = this.vars.useFrames ? Z : J;
                            i.add(this, i._time), this.vars.paused && this.paused(!0)
                        }
                    });
                    m = h.ticker = new u.Ticker, (i = h.prototype)._dirty = i._gc = i._initted = i._paused = !1, i._totalTime = i._time = 0, i._rawPrevTime = -1, i._next = i._last = i._onUpdate = i._timeline = i.timeline = null, i._paused = !1;
                    var k = function () {
                        y && 2e3 < M() - B && ("hidden" !== n.visibilityState || !m.lagSmoothing()) && m.wake();
                        var t = setTimeout(k, 2e3);
                        t.unref && t.unref()
                    };
                    k(), i.play = function (t, e) {
                        return null != t && this.seek(t, e), this.reversed(!1).paused(!1)
                    }, i.pause = function (t, e) {
                        return null != t && this.seek(t, e), this.paused(!0)
                    }, i.resume = function (t, e) {
                        return null != t && this.seek(t, e), this.paused(!1)
                    }, i.seek = function (t, e) {
                        return this.totalTime(Number(t), !1 !== e)
                    }, i.restart = function (t, e) {
                        return this.reversed(!1).paused(!1).totalTime(t ? -this._delay : 0, !1 !== e, !0)
                    }, i.reverse = function (t, e) {
                        return null != t && this.seek(t || this.totalDuration(), e), this.reversed(!0).paused(!1)
                    }, i.render = function (t, e, i) {
                    }, i.invalidate = function () {
                        return this._time = this._totalTime = 0, this._initted = this._gc = !1, this._rawPrevTime = -1, !this._gc && this.timeline || this._enabled(!0), this
                    }, i.isActive = function () {
                        var t, e = this._timeline, i = this._startTime;
                        return !e || !this._gc && !this._paused && e.isActive() && (t = e.rawTime(!0)) >= i && t < i + this.totalDuration() / this._timeScale - 1e-7
                    }, i._enabled = function (t, e) {
                        return y || m.wake(), this._gc = !t, this._active = this.isActive(), !0 !== e && (t && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !t && this.timeline && this._timeline._remove(this, !0)), !1
                    }, i._kill = function (t, e) {
                        return this._enabled(!1, !1)
                    }, i.kill = function (t, e) {
                        return this._kill(t, e), this
                    }, i._uncache = function (t) {
                        for (var e = t ? this : this.timeline; e;) e._dirty = !0, e = e.timeline;
                        return this
                    }, i._swapSelfInParams = function (t) {
                        for (var e = t.length, i = t.concat(); -1 < --e;) "{self}" === t[e] && (i[e] = this);
                        return i
                    }, i._callback = function (t) {
                        var e = this.vars, i = e[t], n = e[t + "Params"], o = e[t + "Scope"] || e.callbackScope || this;
                        switch (n ? n.length : 0) {
                            case 0:
                                i.call(o);
                                break;
                            case 1:
                                i.call(o, n[0]);
                                break;
                            case 2:
                                i.call(o, n[0], n[1]);
                                break;
                            default:
                                i.apply(o, n)
                        }
                    }, i.eventCallback = function (t, e, i, n) {
                        if ("on" === (t || "").substr(0, 2)) {
                            var o = this.vars;
                            if (1 === arguments.length) return o[t];
                            null == e ? delete o[t] : (o[t] = e, o[t + "Params"] = b(i) && -1 !== i.join("").indexOf("{self}") ? this._swapSelfInParams(i) : i, o[t + "Scope"] = n), "onUpdate" === t && (this._onUpdate = e)
                        }
                        return this
                    }, i.delay = function (t) {
                        return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + t - this._delay), this._delay = t, this) : this._delay
                    }, i.duration = function (t) {
                        return arguments.length ? (this._duration = this._totalDuration = t, this._uncache(!0), this._timeline.smoothChildTiming && 0 < this._time && this._time < this._duration && 0 !== t && this.totalTime(this._totalTime * (t / this._duration), !0), this) : (this._dirty = !1, this._duration)
                    }, i.totalDuration = function (t) {
                        return this._dirty = !1, arguments.length ? this.duration(t) : this._totalDuration
                    }, i.time = function (t, e) {
                        return arguments.length ? (this._dirty && this.totalDuration(), this.totalTime(t > this._duration ? this._duration : t, e)) : this._time
                    }, i.totalTime = function (t, e, i) {
                        if (y || m.wake(), !arguments.length) return this._totalTime;
                        if (this._timeline) {
                            if (t < 0 && !i && (t += this.totalDuration()), this._timeline.smoothChildTiming) {
                                this._dirty && this.totalDuration();
                                var n = this._totalDuration, o = this._timeline;
                                if (n < t && !i && (t = n), this._startTime = (this._paused ? this._pauseTime : o._time) - (this._reversed ? n - t : t) / this._timeScale, o._dirty || this._uncache(!1), o._timeline)
                                    for (; o._timeline;) o._timeline._time !== (o._startTime + o._totalTime) / o._timeScale && o.totalTime(o._totalTime, !0), o = o._timeline
                            }
                            this._gc && this._enabled(!0, !1), this._totalTime === t && 0 !== this._duration || (F.length && K(), this.render(t, e, !1), F.length && K())
                        }
                        return this
                    }, i.progress = i.totalProgress = function (t, e) {
                        var i = this.duration();
                        return arguments.length ? this.totalTime(i * t, e) : i ? this._time / i : this.ratio
                    }, i.startTime = function (t) {
                        return arguments.length ? (t !== this._startTime && (this._startTime = t, this.timeline && this.timeline._sortChildren && this.timeline.add(this, t - this._delay)), this) : this._startTime
                    }, i.endTime = function (t) {
                        return this._startTime + (0 != t ? this.totalDuration() : this.duration()) / this._timeScale
                    }, i.timeScale = function (t) {
                        if (!arguments.length) return this._timeScale;
                        var e, i;
                        for (t = t || v, this._timeline && this._timeline.smoothChildTiming && (i = (e = this._pauseTime) || 0 === e ? e : this._timeline.totalTime(), this._startTime = i - (i - this._startTime) * this._timeScale / t), this._timeScale = t, i = this.timeline; i && i.timeline;) i._dirty = !0, i.totalDuration(), i = i.timeline;
                        return this
                    }, i.reversed = function (t) {
                        return arguments.length ? (t != this._reversed && (this._reversed = t, this.totalTime(this._timeline && !this._timeline.smoothChildTiming ? this.totalDuration() - this._totalTime : this._totalTime, !0)), this) : this._reversed
                    }, i.paused = function (t) {
                        if (!arguments.length) return this._paused;
                        var e, i, n = this._timeline;
                        return t != this._paused && n && (y || t || m.wake(), i = (e = n.rawTime()) - this._pauseTime, !t && n.smoothChildTiming && (this._startTime += i, this._uncache(!1)), this._pauseTime = t ? e : null, this._paused = t, this._active = this.isActive(), !t && 0 !== i && this._initted && this.duration() && (e = n.smoothChildTiming ? this._totalTime : (e - this._startTime) / this._timeScale, this.render(e, e === this._totalTime, !0))), this._gc && !t && this._enabled(!0, !1), this
                    };
                    var R = S("core.SimpleTimeline", function (t) {
                        h.call(this, 0, t), this.autoRemoveChildren = this.smoothChildTiming = !0
                    });
                    (i = R.prototype = new h).constructor = R, i.kill()._gc = !1, i._first = i._last = i._recent = null, i._sortChildren = !1, i.add = i.insert = function (t, e, i, n) {
                        var o, r;
                        if (t._startTime = Number(e || 0) + t._delay, t._paused && this !== t._timeline && (t._pauseTime = t._startTime + (this.rawTime() - t._startTime) / t._timeScale), t.timeline && t.timeline._remove(t, !0), t.timeline = t._timeline = this, t._gc && t._enabled(!0, !0), o = this._last, this._sortChildren)
                            for (r = t._startTime; o && o._startTime > r;) o = o._prev;
                        return o ? (t._next = o._next, o._next = t) : (t._next = this._first, this._first = t), t._next ? t._next._prev = t : this._last = t, t._prev = o, this._recent = t, this._timeline && this._uncache(!0), this
                    }, i._remove = function (t, e) {
                        return t.timeline === this && (e || t._enabled(!1, !0), t._prev ? t._prev._next = t._next : this._first === t && (this._first = t._next), t._next ? t._next._prev = t._prev : this._last === t && (this._last = t._prev), t._next = t._prev = t.timeline = null, t === this._recent && (this._recent = this._last), this._timeline && this._uncache(!0)), this
                    }, i.render = function (t, e, i) {
                        var n, o = this._first;
                        for (this._totalTime = this._time = this._rawPrevTime = t; o;) n = o._next, (o._active || t >= o._startTime && !o._paused && !o._gc) && (o._reversed ? o.render((o._dirty ? o.totalDuration() : o._totalDuration) - (t - o._startTime) * o._timeScale, e, i) : o.render((t - o._startTime) * o._timeScale, e, i)), o = n
                    }, i.rawTime = function () {
                        return y || m.wake(), this._totalTime
                    };
                    var D = S("TweenLite", function (t, e, i) {
                        if (h.call(this, e, i), this.render = D.prototype.render, null == t) throw"Cannot tween a null target.";
                        this.target = t = "string" != typeof t ? t : D.selector(t) || t;
                        var n, o, r,
                            s = t.jquery || t.length && t !== d && t[0] && (t[0] === d || t[0].nodeType && t[0].style && !t.nodeType),
                            a = this.vars.overwrite;
                        if (this._overwrite = a = null == a ? q[D.defaultOverwrite] : "number" == typeof a ? a >> 0 : q[a], (s || t instanceof Array || t.push && b(t)) && "number" != typeof t[0])
                            for (this._targets = r = l(t), this._propLookup = [], this._siblings = [], n = 0; n < r.length; n++) (o = r[n]) ? "string" != typeof o ? o.length && o !== d && o[0] && (o[0] === d || o[0].nodeType && o[0].style && !o.nodeType) ? (r.splice(n--, 1), this._targets = r = r.concat(l(o))) : (this._siblings[n] = $(o, this, !1), 1 === a && 1 < this._siblings[n].length && et(o, this, null, 1, this._siblings[n])) : "string" == typeof(o = r[n--] = D.selector(o)) && r.splice(n + 1, 1) : r.splice(n--, 1); else this._propLookup = {}, this._siblings = $(t, this, !1), 1 === a && 1 < this._siblings.length && et(t, this, null, 1, this._siblings);
                        (this.vars.immediateRender || 0 === e && 0 === this._delay && !1 !== this.vars.immediateRender) && (this._time = -v, this.render(Math.min(0, -this._delay)))
                    }, !0), I = function (t) {
                        return t && t.length && t !== d && t[0] && (t[0] === d || t[0].nodeType && t[0].style && !t.nodeType)
                    };
                    (i = D.prototype = new h).constructor = D, i.kill()._gc = !1, i.ratio = 0, i._firstPT = i._targets = i._overwrittenProps = i._startAt = null, i._notifyPluginsOfEnabled = i._lazy = !1, D.version = "1.20.3", D.defaultEase = i._ease = new C(null, null, 1, 1), D.defaultOverwrite = "auto", D.ticker = m, D.autoSleep = 120, D.lagSmoothing = function (t, e) {
                        m.lagSmoothing(t, e)
                    }, D.selector = d.$ || d.jQuery || function (t) {
                        var e = d.$ || d.jQuery;
                        return e ? (D.selector = e)(t) : void 0 === n ? t : n.querySelectorAll ? n.querySelectorAll(t) : n.getElementById("#" === t.charAt(0) ? t.substr(1) : t)
                    };
                    var F = [], L = {}, N = /(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi, H = /[\+-]=-?[\.\d]/,
                        V = function (t) {
                            for (var e, i = this._firstPT; i;) e = i.blob ? 1 === t && null != this.end ? this.end : t ? this.join("") : this.start : i.c * t + i.s, i.m ? e = i.m(e, this._target || i.t) : e < 1e-6 && -1e-6 < e && !i.blob && (e = 0), i.f ? i.fp ? i.t[i.p](i.fp, e) : i.t[i.p](e) : i.t[i.p] = e, i = i._next
                        }, G = function (t, e, i, n) {
                            var o, r, s, a, l, c, h, u = [], d = 0, p = "", f = 0;
                            for (u.start = t, u.end = e, t = u[0] = t + "", e = u[1] = e + "", i && (i(u), t = u[0], e = u[1]), u.length = 0, o = t.match(N) || [], r = e.match(N) || [], n && (n._next = null, n.blob = 1, u._firstPT = u._applyPT = n), l = r.length, a = 0; a < l; a++) h = r[a], p += (c = e.substr(d, e.indexOf(h, d) - d)) || !a ? c : ",", d += c.length, f ? f = (f + 1) % 5 : "rgba(" === c.substr(-5) && (f = 1), h === o[a] || o.length <= a ? p += h : (p && (u.push(p), p = ""), s = parseFloat(o[a]), u.push(s), u._firstPT = {
                                _next: u._firstPT,
                                t: u,
                                p: u.length - 1,
                                s: s,
                                c: ("=" === h.charAt(1) ? parseInt(h.charAt(0) + "1", 10) * parseFloat(h.substr(2)) : parseFloat(h) - s) || 0,
                                f: 0,
                                m: f && f < 4 ? Math.round : 0
                            }), d += h.length;
                            return (p += e.substr(d)) && u.push(p), u.setRatio = V, H.test(e) && (u.end = null), u
                        }, U = function (t, e, i, n, o, r, s, a, l) {
                            "function" == typeof n && (n = n(l || 0, t));
                            var c = typeof t[e],
                                h = "function" !== c ? "" : e.indexOf("set") || "function" != typeof t["get" + e.substr(3)] ? e : "get" + e.substr(3),
                                u = "get" !== i ? i : h ? s ? t[h](s) : t[h]() : t[e],
                                d = "string" == typeof n && "=" === n.charAt(1), p = {
                                    t: t,
                                    p: e,
                                    s: u,
                                    f: "function" === c,
                                    pg: 0,
                                    n: o || e,
                                    m: r ? "function" == typeof r ? r : Math.round : 0,
                                    pr: 0,
                                    c: d ? parseInt(n.charAt(0) + "1", 10) * parseFloat(n.substr(2)) : parseFloat(n) - u || 0
                                };
                            if (("number" != typeof u || "number" != typeof n && !d) && (s || isNaN(u) || !d && isNaN(n) || "boolean" == typeof u || "boolean" == typeof n ? (p.fp = s, p = {
                                t: G(u, d ? parseFloat(p.s) + p.c : n, a || D.defaultStringFilter, p),
                                p: "setRatio",
                                s: 0,
                                c: 1,
                                f: 2,
                                pg: 0,
                                n: o || e,
                                pr: 0,
                                m: 0
                            }) : (p.s = parseFloat(u), d || (p.c = parseFloat(n) - p.s || 0))), p.c) return (p._next = this._firstPT) && (p._next._prev = p), this._firstPT = p
                        }, z = D._internals = {isArray: b, isSelector: I, lazyTweens: F, blobDif: G}, j = D._plugins = {},
                        X = z.tweenLookup = {}, Y = 0, W = z.reservedProps = {
                            ease: 1,
                            delay: 1,
                            overwrite: 1,
                            onComplete: 1,
                            onCompleteParams: 1,
                            onCompleteScope: 1,
                            useFrames: 1,
                            runBackwards: 1,
                            startAt: 1,
                            onUpdate: 1,
                            onUpdateParams: 1,
                            onUpdateScope: 1,
                            onStart: 1,
                            onStartParams: 1,
                            onStartScope: 1,
                            onReverseComplete: 1,
                            onReverseCompleteParams: 1,
                            onReverseCompleteScope: 1,
                            onRepeat: 1,
                            onRepeatParams: 1,
                            onRepeatScope: 1,
                            easeParams: 1,
                            yoyo: 1,
                            immediateRender: 1,
                            repeat: 1,
                            repeatDelay: 1,
                            data: 1,
                            paused: 1,
                            reversed: 1,
                            autoCSS: 1,
                            lazy: 1,
                            onOverwrite: 1,
                            callbackScope: 1,
                            stringFilter: 1,
                            id: 1,
                            yoyoEase: 1
                        }, q = {none: 0, all: 1, auto: 2, concurrent: 3, allOnStart: 4, preexisting: 5, true: 1, false: 0},
                        Z = h._rootFramesTimeline = new R, J = h._rootTimeline = new R, Q = 30,
                        K = z.lazyRender = function () {
                            var t, e = F.length;
                            for (L = {}; -1 < --e;) (t = F[e]) && !1 !== t._lazy && (t.render(t._lazy[0], t._lazy[1], !0), t._lazy = !1);
                            F.length = 0
                        };
                    J._startTime = m.time, Z._startTime = m.frame, J._active = Z._active = !0, setTimeout(K, 1), h._updateRoot = D.render = function () {
                        var t, e, i;
                        if (F.length && K(), J.render((m.time - J._startTime) * J._timeScale, !1, !1), Z.render((m.frame - Z._startTime) * Z._timeScale, !1, !1), F.length && K(), m.frame >= Q) {
                            for (i in Q = m.frame + (parseInt(D.autoSleep, 10) || 120), X) {
                                for (t = (e = X[i].tweens).length; -1 < --t;) e[t]._gc && e.splice(t, 1);
                                0 === e.length && delete X[i]
                            }
                            if ((!(i = J._first) || i._paused) && D.autoSleep && !Z._first && 1 === m._listeners.tick.length) {
                                for (; i && i._paused;) i = i._next;
                                i || m.sleep()
                            }
                        }
                    }, m.addEventListener("tick", h._updateRoot);
                    var $ = function (t, e, i) {
                        var n, o, r = t._gsTweenID;
                        if (X[r || (t._gsTweenID = r = "t" + Y++)] || (X[r] = {
                            target: t,
                            tweens: []
                        }), e && ((n = X[r].tweens)[o = n.length] = e, i))
                            for (; -1 < --o;) n[o] === e && n.splice(o, 1);
                        return X[r].tweens
                    }, tt = function (t, e, i, n) {
                        var o, r, s = t.vars.onOverwrite;
                        return s && (o = s(t, e, i, n)), (s = D.onOverwrite) && (r = s(t, e, i, n)), !1 !== o && !1 !== r
                    }, et = function (t, e, i, n, o) {
                        var r, s, a, l;
                        if (1 === n || 4 <= n) {
                            for (l = o.length, r = 0; r < l; r++)
                                if ((a = o[r]) !== e) a._gc || a._kill(null, t, e) && (s = !0); else if (5 === n) break;
                            return s
                        }
                        var c, h = e._startTime + v, u = [], d = 0, p = 0 === e._duration;
                        for (r = o.length; -1 < --r;) (a = o[r]) === e || a._gc || a._paused || (a._timeline !== e._timeline ? (c = c || it(e, 0, p), 0 === it(a, c, p) && (u[d++] = a)) : a._startTime <= h && a._startTime + a.totalDuration() / a._timeScale > h && ((p || !a._initted) && h - a._startTime <= 2e-10 || (u[d++] = a)));
                        for (r = d; -1 < --r;)
                            if (a = u[r], 2 === n && a._kill(i, t, e) && (s = !0), 2 !== n || !a._firstPT && a._initted) {
                                if (2 !== n && !tt(a, e)) continue;
                                a._enabled(!1, !1) && (s = !0)
                            }
                        return s
                    }, it = function (t, e, i) {
                        for (var n = t._timeline, o = n._timeScale, r = t._startTime; n._timeline;) {
                            if (r += n._startTime, o *= n._timeScale, n._paused) return -100;
                            n = n._timeline
                        }
                        return e < (r /= o) ? r - e : i && r === e || !t._initted && r - e < 2 * v ? v : (r += t.totalDuration() / t._timeScale / o) > e + v ? 0 : r - e - v
                    };
                    i._init = function () {
                        var t, e, i, n, o, r, s = this.vars, a = this._overwrittenProps, l = this._duration,
                            c = !!s.immediateRender, h = s.ease;
                        if (s.startAt) {
                            for (n in this._startAt && (this._startAt.render(-1, !0), this._startAt.kill()), o = {}, s.startAt) o[n] = s.startAt[n];
                            if (o.data = "isStart", o.overwrite = !1, o.immediateRender = !0, o.lazy = c && !1 !== s.lazy, o.startAt = o.delay = null, o.onUpdate = s.onUpdate, o.onUpdateParams = s.onUpdateParams, o.onUpdateScope = s.onUpdateScope || s.callbackScope || this, this._startAt = D.to(this.target, 0, o), c)
                                if (0 < this._time) this._startAt = null; else if (0 !== l) return
                        } else if (s.runBackwards && 0 !== l)
                            if (this._startAt) this._startAt.render(-1, !0), this._startAt.kill(), this._startAt = null; else {
                                for (n in 0 !== this._time && (c = !1), i = {}, s) W[n] && "autoCSS" !== n || (i[n] = s[n]);
                                if (i.overwrite = 0, i.data = "isFromStart", i.lazy = c && !1 !== s.lazy, i.immediateRender = c, this._startAt = D.to(this.target, 0, i), c) {
                                    if (0 === this._time) return
                                } else this._startAt._init(), this._startAt._enabled(!1), this.vars.immediateRender && (this._startAt = null)
                            }
                        if (this._ease = h = h ? h instanceof C ? h : "function" == typeof h ? new C(h, s.easeParams) : P[h] || D.defaultEase : D.defaultEase, s.easeParams instanceof Array && h.config && (this._ease = h.config.apply(h, s.easeParams)), this._easeType = this._ease._type, this._easePower = this._ease._power, this._firstPT = null, this._targets)
                            for (r = this._targets.length, t = 0; t < r; t++) this._initProps(this._targets[t], this._propLookup[t] = {}, this._siblings[t], a ? a[t] : null, t) && (e = !0); else e = this._initProps(this.target, this._propLookup, this._siblings, a, 0);
                        if (e && D._onPluginEvent("_onInitAllProps", this), a && (this._firstPT || "function" != typeof this.target && this._enabled(!1, !1)), s.runBackwards)
                            for (i = this._firstPT; i;) i.s += i.c, i.c = -i.c, i = i._next;
                        this._onUpdate = s.onUpdate, this._initted = !0
                    }, i._initProps = function (t, e, i, n, o) {
                        var r, s, a, l, c, h;
                        if (null == t) return !1;
                        for (r in L[t._gsTweenID] && K(), this.vars.css || t.style && t !== d && t.nodeType && j.css && !1 !== this.vars.autoCSS && function (t, e) {
                            var i, n = {};
                            for (i in t) W[i] || i in e && "transform" !== i && "x" !== i && "y" !== i && "width" !== i && "height" !== i && "className" !== i && "border" !== i || !(!j[i] || j[i] && j[i]._autoCSS) || (n[i] = t[i], delete t[i]);
                            t.css = n
                        }(this.vars, t), this.vars)
                            if (h = this.vars[r], W[r]) h && (h instanceof Array || h.push && b(h)) && -1 !== h.join("").indexOf("{self}") && (this.vars[r] = h = this._swapSelfInParams(h, this)); else if (j[r] && (l = new j[r])._onInitTween(t, this.vars[r], this, o)) {
                                for (this._firstPT = c = {
                                    _next: this._firstPT,
                                    t: l,
                                    p: "setRatio",
                                    s: 0,
                                    c: 1,
                                    f: 1,
                                    n: r,
                                    pg: 1,
                                    pr: l._priority,
                                    m: 0
                                }, s = l._overwriteProps.length; -1 < --s;) e[l._overwriteProps[s]] = this._firstPT;
                                (l._priority || l._onInitAllProps) && (a = !0), (l._onDisable || l._onEnable) && (this._notifyPluginsOfEnabled = !0), c._next && (c._next._prev = c)
                            } else e[r] = U.call(this, t, r, "get", h, r, 0, null, this.vars.stringFilter, o);
                        return n && this._kill(n, t) ? this._initProps(t, e, i, n, o) : 1 < this._overwrite && this._firstPT && 1 < i.length && et(t, this, e, this._overwrite, i) ? (this._kill(e, t), this._initProps(t, e, i, n, o)) : (this._firstPT && (!1 !== this.vars.lazy && this._duration || this.vars.lazy && !this._duration) && (L[t._gsTweenID] = !0), a)
                    }, i.render = function (t, e, i) {
                        var n, o, r, s, a = this._time, l = this._duration, c = this._rawPrevTime;
                        if (l - 1e-7 <= t && 0 <= t) this._totalTime = this._time = l, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1, this._reversed || (n = !0, o = "onComplete", i = i || this._timeline.autoRemoveChildren), 0 === l && (this._initted || !this.vars.lazy || i) && (this._startTime === this._timeline._duration && (t = 0), (c < 0 || t <= 0 && -1e-7 <= t || c === v && "isPause" !== this.data) && c !== t && (i = !0, v < c && (o = "onReverseComplete")), this._rawPrevTime = s = !e || t || c === t ? t : v); else if (t < 1e-7) this._totalTime = this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== a || 0 === l && 0 < c) && (o = "onReverseComplete", n = this._reversed), t < 0 && (this._active = !1, 0 === l && (this._initted || !this.vars.lazy || i) && (0 <= c && (c !== v || "isPause" !== this.data) && (i = !0), this._rawPrevTime = s = !e || t || c === t ? t : v)), (!this._initted || this._startAt && this._startAt.progress()) && (i = !0); else if (this._totalTime = this._time = t, this._easeType) {
                            var h = t / l, u = this._easeType, d = this._easePower;
                            (1 === u || 3 === u && .5 <= h) && (h = 1 - h), 3 === u && (h *= 2), 1 === d ? h *= h : 2 === d ? h *= h * h : 3 === d ? h *= h * h * h : 4 === d && (h *= h * h * h * h), this.ratio = 1 === u ? 1 - h : 2 === u ? h : t / l < .5 ? h / 2 : 1 - h / 2
                        } else this.ratio = this._ease.getRatio(t / l);
                        if (this._time !== a || i) {
                            if (!this._initted) {
                                if (this._init(), !this._initted || this._gc) return;
                                if (!i && this._firstPT && (!1 !== this.vars.lazy && this._duration || this.vars.lazy && !this._duration)) return this._time = this._totalTime = a, this._rawPrevTime = c, F.push(this), void(this._lazy = [t, e]);
                                this._time && !n ? this.ratio = this._ease.getRatio(this._time / l) : n && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
                            }
                            for (!1 !== this._lazy && (this._lazy = !1), this._active || !this._paused && this._time !== a && 0 <= t && (this._active = !0), 0 === a && (this._startAt && (0 <= t ? this._startAt.render(t, !0, i) : o || (o = "_dummyGS")), this.vars.onStart && (0 === this._time && 0 !== l || e || this._callback("onStart"))), r = this._firstPT; r;) r.f ? r.t[r.p](r.c * this.ratio + r.s) : r.t[r.p] = r.c * this.ratio + r.s, r = r._next;
                            this._onUpdate && (t < 0 && this._startAt && -1e-4 !== t && this._startAt.render(t, !0, i), e || (this._time !== a || n || i) && this._callback("onUpdate")), o && (this._gc && !i || (t < 0 && this._startAt && !this._onUpdate && -1e-4 !== t && this._startAt.render(t, !0, i), n && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !e && this.vars[o] && this._callback(o), 0 === l && this._rawPrevTime === v && s !== v && (this._rawPrevTime = 0)))
                        }
                    }, i._kill = function (t, e, i) {
                        if ("all" === t && (t = null), null == t && (null == e || e === this.target)) return this._lazy = !1, this._enabled(!1, !1);
                        e = "string" != typeof e ? e || this._targets || this.target : D.selector(e) || e;
                        var n, o, r, s, a, l, c, h, u,
                            d = i && this._time && i._startTime === this._startTime && this._timeline === i._timeline;
                        if ((b(e) || I(e)) && "number" != typeof e[0])
                            for (n = e.length; -1 < --n;) this._kill(t, e[n], i) && (l = !0); else {
                            if (this._targets) {
                                for (n = this._targets.length; -1 < --n;)
                                    if (e === this._targets[n]) {
                                        a = this._propLookup[n] || {}, this._overwrittenProps = this._overwrittenProps || [], o = this._overwrittenProps[n] = t ? this._overwrittenProps[n] || {} : "all";
                                        break
                                    }
                            } else {
                                if (e !== this.target) return !1;
                                a = this._propLookup, o = this._overwrittenProps = t ? this._overwrittenProps || {} : "all"
                            }
                            if (a) {
                                if (c = t || a, h = t !== o && "all" !== o && t !== a && ("object" != typeof t || !t._tempKill), i && (D.onOverwrite || this.vars.onOverwrite)) {
                                    for (r in c) a[r] && (u || (u = []), u.push(r));
                                    if ((u || !t) && !tt(this, i, e, u)) return !1
                                }
                                for (r in c) (s = a[r]) && (d && (s.f ? s.t[s.p](s.s) : s.t[s.p] = s.s, l = !0), s.pg && s.t._kill(c) && (l = !0), s.pg && 0 !== s.t._overwriteProps.length || (s._prev ? s._prev._next = s._next : s === this._firstPT && (this._firstPT = s._next), s._next && (s._next._prev = s._prev), s._next = s._prev = null), delete a[r]), h && (o[r] = 1);
                                !this._firstPT && this._initted && this._enabled(!1, !1)
                            }
                        }
                        return l
                    }, i.invalidate = function () {
                        return this._notifyPluginsOfEnabled && D._onPluginEvent("_onDisable", this), this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null, this._notifyPluginsOfEnabled = this._active = this._lazy = !1, this._propLookup = this._targets ? {} : [], h.prototype.invalidate.call(this), this.vars.immediateRender && (this._time = -v, this.render(Math.min(0, -this._delay))), this
                    }, i._enabled = function (t, e) {
                        if (y || m.wake(), t && this._gc) {
                            var i, n = this._targets;
                            if (n)
                                for (i = n.length; -1 < --i;) this._siblings[i] = $(n[i], this, !0); else this._siblings = $(this.target, this, !0)
                        }
                        return h.prototype._enabled.call(this, t, e), !(!this._notifyPluginsOfEnabled || !this._firstPT) && D._onPluginEvent(t ? "_onEnable" : "_onDisable", this)
                    }, D.to = function (t, e, i) {
                        return new D(t, e, i)
                    }, D.from = function (t, e, i) {
                        return i.runBackwards = !0, i.immediateRender = 0 != i.immediateRender, new D(t, e, i)
                    }, D.fromTo = function (t, e, i, n) {
                        return n.startAt = i, n.immediateRender = 0 != n.immediateRender && 0 != i.immediateRender, new D(t, e, n)
                    }, D.delayedCall = function (t, e, i, n, o) {
                        return new D(e, 0, {
                            delay: t,
                            onComplete: e,
                            onCompleteParams: i,
                            callbackScope: n,
                            onReverseComplete: e,
                            onReverseCompleteParams: i,
                            immediateRender: !1,
                            lazy: !1,
                            useFrames: o,
                            overwrite: 0
                        })
                    }, D.set = function (t, e) {
                        return new D(t, 0, e)
                    }, D.getTweensOf = function (t, e) {
                        if (null == t) return [];
                        var i, n, o, r;
                        if (t = "string" != typeof t ? t : D.selector(t) || t, (b(t) || I(t)) && "number" != typeof t[0]) {
                            for (i = t.length, n = []; -1 < --i;) n = n.concat(D.getTweensOf(t[i], e));
                            for (i = n.length; -1 < --i;)
                                for (r = n[i], o = i; -1 < --o;) r === n[o] && n.splice(i, 1)
                        } else if (t._gsTweenID)
                            for (i = (n = $(t).concat()).length; -1 < --i;) (n[i]._gc || e && !n[i].isActive()) && n.splice(i, 1);
                        return n || []
                    }, D.killTweensOf = D.killDelayedCallsTo = function (t, e, i) {
                        "object" == typeof e && (i = e, e = !1);
                        for (var n = D.getTweensOf(t, e), o = n.length; -1 < --o;) n[o]._kill(i, t)
                    };
                    var nt = S("plugins.TweenPlugin", function (t, e) {
                        this._overwriteProps = (t || "").split(","), this._propName = this._overwriteProps[0], this._priority = e || 0, this._super = nt.prototype
                    }, !0);
                    if (i = nt.prototype, nt.version = "1.19.0", nt.API = 2, i._firstPT = null, i._addTween = U, i.setRatio = V, i._kill = function (t) {
                        var e, i = this._overwriteProps, n = this._firstPT;
                        if (null != t[this._propName]) this._overwriteProps = []; else
                            for (e = i.length; -1 < --e;) null != t[i[e]] && i.splice(e, 1);
                        for (; n;) null != t[n.n] && (n._next && (n._next._prev = n._prev), n._prev ? (n._prev._next = n._next, n._prev = null) : this._firstPT === n && (this._firstPT = n._next)), n = n._next;
                        return !1
                    }, i._mod = i._roundProps = function (t) {
                        for (var e, i = this._firstPT; i;) (e = t[this._propName] || null != i.n && t[i.n.split(this._propName + "_").join("")]) && "function" == typeof e && (2 === i.f ? i.t._applyPT.m = e : i.m = e), i = i._next
                    }, D._onPluginEvent = function (t, e) {
                        var i, n, o, r, s, a = e._firstPT;
                        if ("_onInitAllProps" === t) {
                            for (; a;) {
                                for (s = a._next, n = o; n && n.pr > a.pr;) n = n._next;
                                (a._prev = n ? n._prev : r) ? a._prev._next = a : o = a, (a._next = n) ? n._prev = a : r = a, a = s
                            }
                            a = e._firstPT = o
                        }
                        for (; a;) a.pg && "function" == typeof a.t[t] && a.t[t]() && (i = !0), a = a._next;
                        return i
                    }, nt.activate = function (t) {
                        for (var e = t.length; -1 < --e;) t[e].API === nt.API && (j[(new t[e])._propName] = t[e]);
                        return !0
                    }, s.plugin = function (t) {
                        if (!(t && t.propName && t.init && t.API)) throw"illegal plugin definition.";
                        var e, i = t.propName, n = t.priority || 0, o = t.overwriteProps, r = {
                            init: "_onInitTween",
                            set: "setRatio",
                            kill: "_kill",
                            round: "_mod",
                            mod: "_mod",
                            initAll: "_onInitAllProps"
                        }, s = S("plugins." + i.charAt(0).toUpperCase() + i.substr(1) + "Plugin", function () {
                            nt.call(this, i, n), this._overwriteProps = o || []
                        }, !0 === t.global), a = s.prototype = new nt(i);
                        for (e in(a.constructor = s).API = t.API, r) "function" == typeof t[e] && (a[r[e]] = t[e]);
                        return s.version = t.version, nt.activate([s]), s
                    }, t = d._gsQueue) {
                        for (e = 0; e < t.length; e++) t[e]();
                        for (i in w) w[i].func || d.console.log("GSAP encountered missing dependency: " + i)
                    }
                    y = !1
                }
            }(void 0 !== ot && ot.exports && void 0 !== t ? t : this || window, "TweenMax")
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {}],
    CameraController: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "3d7969W8uhGV65ykFpNKHow", "CameraController"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = cc._decorator, o = n.ccclass, r = (n.property, function (t) {
            function e() {
                return null !== t && t.apply(this, arguments) || this
            }

            return __extends(e, t), e.prototype.start = function () {
                this.node.x = Math.round(cc.director.getVisibleSize().width / 2), this.node.y = Math.round(cc.director.getVisibleSize().height / 2)
            }, e = __decorate([o], e)
        }(cc.Component));
        i.default = r, cc._RF.pop()
    }, {}],
    ClickableArea: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "c3f6cTziqxJ2aPoG+4qy6/q", "ClickableArea"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = cc._decorator, o = n.ccclass, r = (n.property, function (t) {
            function e() {
                return null !== t && t.apply(this, arguments) || this
            }

            return __extends(e, t), e = __decorate([o], e)
        }(cc.Component));
        i.default = r, cc._RF.pop()
    }, {}],
    ColliderTypes: [function (t, e, i) {
        "use strict";
        var n;
        cc._RF.push(e, "077f5KmReRBzqwwk5YSwLCg", "ColliderTypes"), Object.defineProperty(i, "__esModule", {value: !0}), (n = i.ColliderTypes || (i.ColliderTypes = {}))[n.MGEntityTypeNone = 0] = "MGEntityTypeNone", n[n.MGEntityTypeMore = 1] = "MGEntityTypeMore", n[n.MGEntityTypeBall = 2] = "MGEntityTypeBall", n[n.MGEntityTypeLeft = 4] = "MGEntityTypeLeft", n[n.MGEntityTypeRight = 8] = "MGEntityTypeRight", n[n.MGEntityTypeFloor = 16] = "MGEntityTypeFloor", n[n.MGEntityTypeGeneric1 = 32] = "MGEntityTypeGeneric1", n[n.MGEntityTypeGeneric2 = 64] = "MGEntityTypeGeneric2", n[n.MGEntityTypeGeneric3 = 128] = "MGEntityTypeGeneric3", n[n.MGEntityTypeGeneric4 = 256] = "MGEntityTypeGeneric4", n[n.MGEntityTypeGeneric5 = 512] = "MGEntityTypeGeneric5", n[n.MGEntityTypeGeneric6 = 1024] = "MGEntityTypeGeneric6", cc._RF.pop()
    }, {}],
    ComboCountText: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "aec0da2tFtF0b6HblOikNib", "ComboCountText"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = t("gsap"), o = cc._decorator, r = o.ccclass, s = o.property, a = function (e) {
            function t() {
                var t = null !== e && e.apply(this, arguments) || this;
                return t.label = null, t
            }

            return __extends(t, e), t.prototype.start = function () {
                this.hide()
            }, t.prototype.hide = function () {
                this.node.opacity = 0
            }, t.prototype.show = function (t, e) {
                this.label.string = "+" + t.toString(), this.node.position = e, this.node.opacity = 255, this.tweenPosition && this.tweenOpacity && (this.tweenPosition.restart(!0, !0), this.tweenOpacity.restart(!0, !0)), this.tweenPosition = n.TweenMax.to(this.node, 2, {y: e.y + 60}), this.tweenOpacity = n.TweenMax.to(this.node, 1, {
                    opacity: 0,
                    delay: 1
                })
            }, __decorate([s(cc.Label)], t.prototype, "label", void 0), t = __decorate([r], t)
        }(cc.Component);
        i.default = a, cc._RF.pop()
    }, {gsap: 1}],
    Combo: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "6c56cndqolDCJlE5fw5kMh/", "Combo"), Object.defineProperty(i, "__esModule", {value: !0});
        var o = t("../Helpers/MathExtra"), r = t("../Common/AudioManager"), s = t("./Ball"), n = cc._decorator,
            a = n.ccclass, l = n.property, c = function (e) {
                function t() {
                    var t = null !== e && e.apply(this, arguments) || this;
                    return t.comboScore = null, t.shotTypeMessage = null, t.boomShakaAudio = null, t.yeahAudio = null, t.boomAudio = null, t.wauwAudio = null, t.hornAudio = void 0, t.comboScorePrefix = "连击", t.lowComboMessages = ["完美!", "好球!", "空心入网!", "漂亮!", "太棒了!", "炸裂!", "得心应手!"], t.highComboMessages = ["燃烧!", "超级炸板!", "好棒!", "宇宙最强!", "炸板!", "哇哦!", "超厉害!", "正中靶心!"], t.comboAnim = null, t
                }

                return __extends(t, e), t.prototype.onLoad = function () {
                    this.node.active = !1, this.comboAnim = this.getComponent(cc.Animation);
                    var widget = this.comboScore.node.parent.getComponent(cc.Widget);
                    widget.isAlignTop = true;
                    widget.top += sceneManager.topOffset();
                    widget.updateAlignment();
                }, t.prototype.show = function (t, e, i) {
                    this.node.active = !0, this.comboScore.string = this.comboScorePrefix + t.toString();
                    var n = "";
                    switch (n = e ? "绝杀" : i == s.default.COMBO_TYPE_BOARD ? "打板!" : 1 < t ? this.highComboMessages[o.default.randomBetween(0, this.highComboMessages.length - 1)] : this.lowComboMessages[o.default.randomBetween(0, this.lowComboMessages.length - 1)], this.shotTypeMessage.string = n, this.comboAnim.play("ComboTriggered"), n) {
                        case"绝杀":
                            r.default.playEffect(this.hornAudio, !1, .6);
                            break;
                        case"超级炸板!":
                            r.default.playEffect(this.boomShakaAudio, !1, 1);
                            break;
                        case"好棒!":
                            r.default.playEffect(this.yeahAudio, !1, 1);
                            break;
                        case"炸板!":
                        case"BOOM GOES THE DYNAMITE!":
                            r.default.playEffect(this.boomAudio, !1, 1);
                            break;
                        case"哇哦!":
                            r.default.playEffect(this.wauwAudio, !1, 1)
                    }
                }, __decorate([l(cc.Label)], t.prototype, "comboScore", void 0), __decorate([l(cc.Label)], t.prototype, "shotTypeMessage", void 0), __decorate([l(cc.AudioClip)], t.prototype, "boomShakaAudio", void 0), __decorate([l(cc.AudioClip)], t.prototype, "yeahAudio", void 0), __decorate([l(cc.AudioClip)], t.prototype, "boomAudio", void 0), __decorate([l(cc.AudioClip)], t.prototype, "wauwAudio", void 0), __decorate([l(cc.AudioClip)], t.prototype, "hornAudio", void 0), t = __decorate([a], t)
            }(cc.Component);
        i.default = c, cc._RF.pop()
    }, {"../Common/AudioManager": "AudioManager", "../Helpers/MathExtra": "MathExtra", "./Ball": "Ball"}],
    CrowdMember: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "bf96fIu3M1DRIiH1Sruup+N", "CrowdMember"), Object.defineProperty(i, "__esModule", {value: !0});
        var r = t("gsap"), s = t("../Helpers/MathExtra"), n = cc._decorator, a = n.ccclass,
            o = (n.property, function (e) {
                function t() {
                    var t = null !== e && e.apply(this, arguments) || this;
                    return t.isActive = !0, t
                }

                return __extends(t, e), (o = t).prototype.start = function () {
                    this.removeInvisible(), this.anim = this.getComponent(cc.Animation), this.playIdle()
                }, t.prototype.removeInvisible = function () {
                    var t = cc.director.getVisibleSize().width / 2;
                    Math.abs(this.node.position.x) > t - 0 && (this.node.active = !1, this.isActive = !1, this.node.destroy())
                }, t.prototype.animationStyle = function (t, e) {
                    var i = this;
                    if (this.isActive) {
                        this.idleTween && this.idleTween.kill();
                        var n = "";
                        switch (t) {
                            case o.ANIM_CHEER:
                                n = "CrowdMember_Cheer";
                                break;
                            case o.ANIM_JUMP:
                                n = "CrowdMember_Jump";
                                break;
                            case o.ANIM_SMALL_JUMP:
                                n = "CrowdMember_SmallJump"
                        }
                        r.TweenMax.delayedCall(e, function () {
                            i.anim && i.anim.play(n)
                        })
                    }
                }, t.prototype.playIdle = function () {
                    var t = this;
                    if (0 == s.default.randomBetween(0, 4)) {
                        var e = s.default.randomBetween(1, 3), i = s.default.randomBetween(20, 100) / 10,
                            n = "CrowdMember_Idle_" + e.toString();
                        this.idleTween = r.TweenMax.delayedCall(i, function () {
                            t.anim && t.anim.play(n)
                        })
                    } else {
                        var o = s.default.randomBetween(20, 100) / 10;
                        this.idleTween = r.TweenMax.delayedCall(o, function () {
                            t.playIdle()
                        })
                    }
                }, t.prototype.idleAnimDone = function () {
                    this.playIdle()
                }, t.prototype.cheerAnimDone = function () {
                    this.playIdle()
                }, t.ANIM_IDLE = "ANIM_STYLE_IDLE", t.ANIM_CHEER = "ANIM_STYLE_CHEER", t.ANIM_JUMP = "ANIM_STYLE_JUMP", t.ANIM_SMALL_JUMP = "ANIM_STYLE_SMALL_JUMP", t = o = __decorate([a], t);
                var o
            }(cc.Component));
        i.default = o, cc._RF.pop()
    }, {"../Helpers/MathExtra": "MathExtra", gsap: 1}],
    Crowd: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "8fea1Es9V9ICKwJqN0MMaC/", "Crowd"), Object.defineProperty(i, "__esModule", {value: !0});
        var r = t("./CrowdMember"), s = t("../Helpers/MathExtra"), n = cc._decorator, o = n.ccclass, a = n.property,
            l = function (e) {
                function t() {
                    var t = null !== e && e.apply(this, arguments) || this;
                    return t.crowdSprites = [], t.crowdMembers = [], t
                }

                return __extends(t, e), t.prototype.start = function () {
                    this.getCrowd(), this.styleCrowd()
                }, t.prototype.getCrowd = function () {
                    this.crowdMembers = this.getComponentsInChildren(r.default)
                }, t.prototype.styleCrowd = function () {
                    for (var t = 0; t < this.crowdMembers.length; t++) {
                        this.crowdMembers[t].getComponentInChildren(cc.Sprite).spriteFrame = this.crowdSprites[s.default.randomBetween(0, this.crowdSprites.length - 1)]
                    }
                }, t.prototype.showScoreAnimation = function (t) {
                    var e = r.default.ANIM_CHEER;
                    2 == t ? e = r.default.ANIM_SMALL_JUMP : 2 < t && (e = r.default.ANIM_JUMP);
                    for (var i = 0; i < this.crowdMembers.length; i++) {
                        if (.75 < Math.random()) {
                            var n = this.crowdMembers[i], o = s.default.randomBetween(1, 10) / 10;
                            n.animationStyle(e, o)
                        }
                    }
                }, __decorate([a(cc.SpriteFrame)], t.prototype, "crowdSprites", void 0), t = __decorate([o], t)
            }(cc.Component);
        i.default = l, cc._RF.pop()
    }, {"../Helpers/MathExtra": "MathExtra", "./CrowdMember": "CrowdMember"}],
    FaceBookShare: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "b8dbaq2oMlHi5cIofjNLKd8", "FaceBookShare"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = function () {
            function t() {
            }

            return t.shareCustom = function (n, o) {
                return new Promise(function (t, e) {
                    var i = {
                        action: "CUSTOM",
                        cta: "Play!",
                        template: "play_turn",
                        image: o,
                        text: n,
                        data: {},
                        strategy: "IMMEDIATE",
                        notification: "PUSH"
                    };
                    window.FBInstant ? (window.FBInstant.updateAsync(i).then(function () {
                        t()
                    }), t()) : e()
                })
            }, t.shareNormal = function (i, n) {
                return new Promise(function (t, e) {
                    window.FBInstant.shareAsync({intent: "REQUEST", image: n, text: i, data: {}}).then(function () {
                        t()
                    }, function () {
                    })
                })
            }, t
        }();
        i.default = n, cc._RF.pop()
    }, {}],
    Floor: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "15558waYhBJZLQG3dfKG2Ms", "Floor"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = t("./ColliderTypes"), o = cc._decorator, r = o.ccclass, s = o.property, a = function (e) {
            function t() {
                var t = null !== e && e.apply(this, arguments) || this;
                return t.floorCollider = null, t
            }

            return __extends(t, e), t.prototype.start = function () {
            }, t.prototype.onEnable = function () {
                this.setColliderType()
            }, t.prototype.setColliderType = function () {
                var t = this.floorCollider.body._b2Body.GetFixtureList(), e = t.GetFilterData();
                e.categoryBits = n.ColliderTypes.MGEntityTypeFloor, e.maskBits = n.ColliderTypes.MGEntityTypeBall, t.SetFilterData(e)
            }, __decorate([s(cc.PhysicsBoxCollider)], t.prototype, "floorCollider", void 0), t = __decorate([r], t)
        }(cc.Component);
        i.default = a, cc._RF.pop()
    }, {"./ColliderTypes": "ColliderTypes"}],
    GameMain: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "6ab6b/vWCxOe7CVyN1kqyPo", "GameMain"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = t("gsap"), o = t("./Game/Basket"), r = t("./Game/Ball"), a = t("./GameSettings"),
            l = t("./Common/AudioManager"), s = t("./Game/ClickableArea"), c = t("./GameOver/GameOverScreen"),
            h = t("./Game/TimerCountDown"), u = t("./Game/Combo"), d = t("./Pause/PauseButton"),
            p = t("./Pause/PauseView"), f = t("./Helpers/MathExtra"), _ = t("./Game/Crowd"),
            m = t("./Game/ComboCountText"), y = t("./Helpers/Effects/Shake"), g = t("./GameState/HighScore"),
            v = t("./BackgroundMusicLoader"), T = t("./Analytics/Analytics"), b = t("./Analytics/AnalyticsHBI"),
            w = t("./LeaderBoards/LeaderBoardStartView"), x = cc._decorator, S = x.ccclass, C = x.property,
            P = function (t) {
                function e() {
                    var s = null !== t && t.apply(this, arguments) || this;
                    return s.basketLeft = null, s.comboCountText = null, s.pauseButton = null, s.basketRight = null, s.netLeftFront = null, s.netRightFront = null, s.mainCamera = null, s.tutorialAnim = null, s.tutorialCircle = null, s.crowd = null, s.ball = null, s.clickableArea = null, s.pauseView = null, s.gameOverScreen = null, s.timerCountDown = void 0, s.pointsLabel = void 0, s.pointsLabelGameOver = void 0, s.highScoreLabel = void 0, s.leaderBoardStartView = void 0, s.combo = void 0, s.ambienceAudio = void 0, s.heartBeatAudio = void 0, s.points = 0, s.sceneWidth = 0, s.ambienceAudioID = 0, s.heartBeatAudioID = 0, s.sceneWidthHalf = 0, s.sceneHeight = 0, s.sceneHeightHalf = 0, s.highscore = 0, s.direction = -1, s.basketMoveTimeHide = .2, s.basketMoveTimeShow = .4, s.hasGameStarted = !1, s.isGameOver = !1, s.paused = !1, s.hasGravity = !1, s.gameOverScreenShown = !1, s.currentPhysicsSpeed = 1, s.clickCount = 0, s.sunkCount = 0, s.comboCount = 0, s.maxComboCount = 0, s.scoredOnThisRound = !1, s.onLeaderBoardShowTutorial = function () {
                        s.tutorialAnim.active = !0, s.shareTime = 0
                    }, s.afterStep = function () {
                        s.wrapBallAtEdges()
                    }, s.onPaused = function (t) {
                        s.paused = !0, s.pauseView.show(), s.currentPhysicsSpeed = s.physicsManager.speed, s.physicsManager.speed = 0, s.hasGameStarted && (s.ball.pause(), s.timerCountDown.pause()), T.default.logEvent("game_paused"), b.default.logEvent("gameplay", "", "", "game_paused", s.points)
                    }, s.onResume = function (t) {
                        s.pauseView.hide(), s.paused = !1, s.physicsManager.speed = s.currentPhysicsSpeed, s.hasGameStarted && (s.ball.resume(), s.scoredOnThisRound && s.timerCountDown.resume()), T.default.logEvent("game_resumed"), b.default.logEvent("gameplay", "", "", "game_resumed", s.points)
                    }, s.onAreaTouch = function (t) {
                        s.tutorialAnim.active && (s.tutorialAnim.active = !1, s.timerCountDown.resetTimer()), s.hasGameStarted || (s.hasGameStarted = !0), s.timerCountDown.timerDone || s.paused || (s.physicsManager.speed != a.default.physicsNormalSpeed && (s.physicsManager.speed = s.currentPhysicsSpeed = a.default.physicsNormalSpeed), s.hasGravity || (a.default.gravity = a.default.startGravity, s.addGravity(), s.hasGravity = !0), s.ball.bounce(), 0 == s.clickCount && (T.default.logEvent("game_started"), b.default.logEvent("launch", "", "", "launch", 1)), s.clickCount++)
                    }, s.onRetry = function (t) {
                        l.default.setMusicVolume(l.default.musicVolume), s.physicsManager.gravity = new cc.Vec2(0, 0), s.timerCountDown.init(), s.ball.restart(), s.tutorialAnim.active = !0, s.onNewGame(), s.initGame()
                    }, s.onContinue = function (t) {
                        console.log("onContinue======>继续游戏")
                        l.default.setMusicVolume(l.default.musicVolume), s.addGravity(), s.physicsManager.speed = s.currentPhysicsSpeed = a.default.physicsNormalSpeed, s.timerCountDown.timerDone = !1, s.basketLeft.show(), s.basketRight.show(), s.ball.show(), s.ball.restartCenter(), s.ball.direction = s.direction, s.onNewGame()
                    }, s.onBallHitFloor = function (t) {
                        s.timerCountDown.timerDone && !s.gameOverScreenShown && (s.isGameOver = !0, s.gameOverScreenShown = !0, s.timerCountDown.hide(), s.pauseButton.hide(), s.btnGift.active = false, s.gameOver(), s.setHighScore(s.points), l.default.fadeSfxIDVolume(s.ambienceAudioID, 1, 1), s.stopHeartBeat(), n.TweenMax.delayedCall(1, s.hideGameObjects))
                    }, s.hideGameObjects = function () {
                        s.isGameOver && (s.ball.hide(), s.basketLeft.hide(), s.basketRight.hide())
                    }, s.onTimerDone = function (t) {
                        s.physicsManager.speed = s.currentPhysicsSpeed = a.default.physicsSlowSpeed;
                        if (s.ball.isTouchingFloor) {
                            s.isGameOver = !0, s.gameOverScreenShown = !0;
                            n.TweenMax.delayedCall(1, function () {
                                s.setHighScore(s.points), s.timerCountDown.hide(), s.pauseButton.hide(), s.btnGift.active = false, s.gameOver();
                            });
                            n.TweenMax.delayedCall(2, s.hideGameObjects);
                        } else {
                            l.default.fadeSfxIDVolume(s.ambienceAudioID, 0, 1);
                            0 != s.heartBeatAudioID && s.stopHeartBeat();
                            s.startHeartBeat();
                        }
                    }, s.onBallCleanShot = function (t) {
                        var e = s.physicsManager.speed != a.default.physicsNormalSpeed, i = t.detail.count,
                            n = t.detail.type, o = s.ball.node.position;
                        s.comboCount = i, s.comboCount > s.maxComboCount && (s.maxComboCount = s.comboCount), 1 == i ? (s.combo.show(i, e, n), s.comboCountText.show(i, o)) : 2 <= i && (s.combo.show(i, e, n), s.currentBasketShown.backBoardShatter(), y.default.shake(s.mainCamera.node), s.comboCountText.show(i, o))
                    }, s.onBallScored = function (t) {
                        if (!s.isGameOver) {
                            s.scoredOnThisRound || (s.scoredOnThisRound = !0);
                            var e = t.detail.count, i = t.detail.type, n = s.calculateBasketYPosition(),
                                o = s.physicsManager.speed != a.default.physicsNormalSpeed;
                            s.comboCount = e, o && s.combo.show(e, o, i), 1 == s.direction ? (s.hideRightBasket(s.basketMoveTimeHide), s.showLeftBasket(n, s.basketMoveTimeShow), s.direction = -1) : (s.hideLeftBasket(s.basketMoveTimeHide), s.showRightBasket(n, s.basketMoveTimeShow), s.direction = 1), s.ball.direction = s.direction, s.timerCountDown.stopAnimation();
                            var r = 1 <= s.comboCount ? s.comboCount : 2;
                            r = Math.max(r, 2);
                            s.highScoreLabel.string = "历史最佳:" + s.fetchHighScore();
                            s.addPoints(r), s.pointsLabel.string = s.points.toString(), s.pointsLabelGameOver.string = "本次成绩:" + s.points.toString(), s.physicsManager.speed != a.default.physicsNormalSpeed && (l.default.fadeSfxIDVolume(s.ambienceAudioID, 1, 1), s.physicsManager.speed = s.currentPhysicsSpeed = a.default.physicsNormalSpeed), s.stopHeartBeat(), s.crowd.showScoreAnimation(s.ball.comboCounter), s.sunkCount++, s.trackScore()
                        }
                    }, s.onDestroy = function (t) {
                        console.log("GameMain.onDestory");
                        this.physicsManager.off("after-step");
                        cc.systemEvent.off("eventHBI")
                    }, s
                }

                return __extends(e, t), e.prototype.onLoad = function () {
                    var t = this;
                    this.instanceHBI = window.hbi(), this.instanceHBI.init("hb", "basketball", "fb-instant", this.instanceHBI.MODE.PROD, {appVersion: "1.0.0"}), this.tutorialAnim.active = !1, this.backgroundMusicLoader = this.getComponent(v.default), this.initPhysics(), this.addEventListeners(), l.default.init().then(function () {
                        t.initFacebook()
                    })
                }, e.prototype.start = function () {
                    var t = this;
                    // sceneManager.showGameStart({
                    //     onPlay: function () {
                    //         wxHelper.showBannerAd(null, 30);
                    //     }
                    // });
                    this.pauseButton.hide();
                    this.btnGift = new cc.Node();
                    this.btnGift.active = false;
                    cc.find("Canvas/UI").addChild(this.btnGift, -1);
                    this.btnGift.name = "Gift Button";
                    this.btnGift.scale = 0.5;
                    var widget = this.btnGift.addComponent(cc.Widget);
                    widget.isAlignTop = !0;
                    widget.isAlignLeft = !0;
                    widget.top = 120;
                    widget.left = 70;
                    this.pointsLabel.lineHeight = this.pointsLabel.fontSize;
                    var widget = this.pointsLabel.getComponent(cc.Widget);
                    widget.top += sceneManager.topOffset();
                    widget.updateAlignment();
                    this.pointsLabelGameOver.lineHeight = this.pointsLabelGameOver.fontSize;
                    l.default.init().then(function () {
                        t.ambienceAudioID = l.default.playEffect(t.ambienceAudio, !0, 1), y.default.generateNoise(), t.initGame()
                    });
                    this.inited = true;
                }, e.prototype.initGame = function () {
                    this.initVars(), this.setStartPositions(), this.showLeftBasket(this.basketLeft.node.y, this.basketMoveTimeShow), this.hideRightBasket(0), this.initBall(), T.default.logEvent("launch_mainmenu"), b.default.logEvent("launch", "", "", "launch_opened", 1)
                }, e.prototype.initFacebook = function () {
                    var t = this;
                    window.FBInstant ? window.FBInstant.startGameAsync().then(function () {
                        t.leaderBoardStartView.node.active = !0, t.fetchHighScore()
                    }) : this.tutorialAnim.active = !0
                }, e.prototype.fetchHighScore = function () {
                    var e = this;
                    return e.highscore = g.default.getHighScore();
                }, e.prototype.setHighScore = function (t) {
                    t > this.highscore && (this.highscore = t, g.default.setHighScore(t))
                }, e.prototype.initVars = function () {
                    this.clickCount = 0, this.sunkCount = 0, this.comboCount = 0, this.points = 0, this.direction = -1, this.ball.direction = -1, this.pointsLabel.string = this.points.toString(), this.pointsLabelGameOver.string = this.points.toString(), this.sceneWidth = cc.director.getVisibleSize().width, this.sceneHeight = cc.director.getVisibleSize().height, this.sceneWidthHalf = this.sceneWidth / 2, this.sceneHeightHalf = this.sceneHeight / 2, this.basketLeft.shownPos = -this.sceneWidthHalf, this.basketLeft.hiddenPos = -this.sceneWidthHalf - this.basketLeft.node.width - 300, this.basketRight.shownPos = this.sceneWidthHalf, this.basketRight.hiddenPos = this.sceneWidthHalf + this.basketLeft.node.width + 300
                }, e.prototype.initBall = function () {
                    this.ball.startPosition = this.tutorialCircle.position, this.ball.restart(), this.ball.direction = -1
                }, e.prototype.initPhysics = function () {
                    a.default.gravity = 0, this.physicsManager = cc.director.getPhysicsManager(), this.addGravity()
                }, e.prototype.addGravity = function () {
                    this.physicsManager.gravity = new cc.Vec2(0, a.default.gravity)
                }, e.prototype.addEventListeners = function () {
                    var i = this;
                    this.pauseButton.node.on(d.default.PAUSE, this.onPaused), this.pauseView.node.on(p.default.UNPAUSE, this.onResume), this.timerCountDown.node.on(h.default.TIMER_DONE, this.onTimerDone), this.gameOverScreen.node.on(c.default.RETRY, this.onRetry), this.gameOverScreen.node.on(c.default.CONTINUE, this.onContinue), this.ball.node.on(r.default.HIT_FLOOR, this.onBallHitFloor), this.ball.node.on(r.default.SCORED, this.onBallScored), this.ball.node.on(r.default.CLEAN_SHOT, this.onBallCleanShot), this.clickableArea.node.on(cc.Node.EventType.TOUCH_START, this.onAreaTouch), this.leaderBoardStartView.node.on(w.default.SHOW_TUTORIAL_ANIM, this.onLeaderBoardShowTutorial), this.physicsManager.on("after-step", this.afterStep), cc.systemEvent.on("eventHBI", function (t) {
                        var e = t.getUserData().eventData;
                        i.sendEventToHBI(e)
                    })
                }, e.prototype.sendEventToHBI = function (t) {
                    this.instanceHBI.logEvent(t)
                }, e.prototype.wrapBallAtEdges = function () {
                    this.ball.node.x > this.sceneWidthHalf + this.ball.node.width / 2 ? (this.ball.node.x = -this.sceneWidthHalf - this.ball.node.width / 2) : this.ball.node.x < -this.sceneWidthHalf - this.ball.node.width / 2 && (this.ball.node.x = this.sceneWidthHalf + this.ball.node.width / 2)
                }, e.prototype.onNewGame = function () {
                    this.isGameOver = !1, this.hasGravity = !1, this.gameOverScreenShown = !1, this.scoredOnThisRound = !1, this.timerCountDown.show(), this.timerCountDown.reset(), this.pauseButton.show(), this.btnGift.active = wxHelper.showActivity, l.default.fadeSfxIDVolume(this.ambienceAudioID, 1, 1)
                }, e.prototype.gameOver = function () {
                    var t = this;
                    this.hasGameStarted = !1, n.TweenMax.delayedCall(1.1, function () {
                        l.default.fadeSfxIDVolume(t.ambienceAudioID, 0, 1), t.backgroundMusicLoader.playRandom(), t.gameOverScreen.points = t.points, t.gameOverScreen.show(), T.default.logEvent("game_finished", null, {
                            Score: t.points,
                            SunkCount: t.sunkCount
                        }), b.default.logEvent("gameplay", "", "", "game_finished", t.points)
                    })
                }, e.prototype.startHeartBeat = function () {
                    this.heartBeatAudioID = cc.audioEngine.play(this.heartBeatAudio, true, 1);
                }, e.prototype.stopHeartBeat = function () {
                    if (this.heartBeatAudioID) cc.audioEngine.stop(this.heartBeatAudioID);
                }, e.prototype.addPoints = function (t) {
                    this.points += t, this.timerCountDown.addPoints(t)
                }, e.prototype.trackScore = function () {
                    T.default.logEvent("basket_hit", null, {
                        TapsMade: this.clickCount,
                        TimeLeft: this.timerCountDown.getTimeRemaining(),
                        SunkCount: this.sunkCount,
                        ComboCount: this.comboCount
                    }), b.default.logEvent("gameplay", "", "", "basket_hit", this.sunkCount)
                }, e.prototype.calculateBasketYPosition = function () {
                    var t = -this.sceneHeight / 2 + 400, e = this.sceneHeight / 2 - 200;
                    return f.default.randomBetween(t, e)
                }, e.prototype.setStartPositions = function () {
                    this.basketLeft.moveToStartPos(), this.basketRight.moveToStartPos()
                }, e.prototype.showLeftBasket = function (t, e) {
                    this.basketLeft.moveIn(t, e), this.currentBasketShown = this.basketLeft
                }, e.prototype.showRightBasket = function (t, e) {
                    this.basketRight.moveIn(t, e), this.currentBasketShown = this.basketRight
                }, e.prototype.hideLeftBasket = function (t) {
                    this.basketLeft.moveOut(t)
                }, e.prototype.hideRightBasket = function (t) {
                    this.basketRight.moveOut(t)
                }, __decorate([C(o.default)], e.prototype, "basketLeft", void 0), __decorate([C(m.default)], e.prototype, "comboCountText", void 0), __decorate([C(d.default)], e.prototype, "pauseButton", void 0), __decorate([C(o.default)], e.prototype, "basketRight", void 0), __decorate([C(cc.Node)], e.prototype, "netLeftFront", void 0), __decorate([C(cc.Node)], e.prototype, "netRightFront", void 0), __decorate([C(cc.Camera)], e.prototype, "mainCamera", void 0), __decorate([C(cc.Node)], e.prototype, "tutorialAnim", void 0), __decorate([C(cc.Node)], e.prototype, "tutorialCircle", void 0), __decorate([C(_.default)], e.prototype, "crowd", void 0), __decorate([C(r.default)], e.prototype, "ball", void 0), __decorate([C(s.default)], e.prototype, "clickableArea", void 0), __decorate([C(p.default)], e.prototype, "pauseView", void 0), __decorate([C(c.default)], e.prototype, "gameOverScreen", void 0), __decorate([C(h.default)], e.prototype, "timerCountDown", void 0), __decorate([C(cc.Label)], e.prototype, "pointsLabel", void 0), __decorate([C(cc.Label)], e.prototype, "pointsLabelGameOver", void 0), __decorate([C(cc.Label)], e.prototype, "highScoreLabel", void 0), __decorate([C(w.default)], e.prototype, "leaderBoardStartView", void 0), __decorate([C(u.default)], e.prototype, "combo", void 0), __decorate([C(cc.AudioClip)], e.prototype, "ambienceAudio", void 0), __decorate([C(cc.AudioClip)], e.prototype, "heartBeatAudio", void 0), e = __decorate([S], e)
            }(cc.Component);
        i.default = P, cc._RF.pop()
    }, {
        "./Analytics/Analytics": "Analytics",
        "./Analytics/AnalyticsHBI": "AnalyticsHBI",
        "./BackgroundMusicLoader": "BackgroundMusicLoader",
        "./Common/AudioManager": "AudioManager",
        "./Game/Ball": "Ball",
        "./Game/Basket": "Basket",
        "./Game/ClickableArea": "ClickableArea",
        "./Game/Combo": "Combo",
        "./Game/ComboCountText": "ComboCountText",
        "./Game/Crowd": "Crowd",
        "./Game/TimerCountDown": "TimerCountDown",
        "./GameOver/GameOverScreen": "GameOverScreen",
        "./GameSettings": "GameSettings",
        "./GameState/HighScore": "HighScore",
        "./Helpers/Effects/Shake": "Shake",
        "./Helpers/MathExtra": "MathExtra",
        "./LeaderBoards/LeaderBoardStartView": "LeaderBoardStartView",
        "./Pause/PauseButton": "PauseButton",
        "./Pause/PauseView": "PauseView",
        gsap: 1
    }],
    GameOverScreen: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "961c5fRN4NMqYcND855I7fl", "GameOverScreen"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = t("../GameState/FaceBookShare"), s = t("gsap"), o = t("../Analytics/Analytics"),
            r = t("../Analytics/AnalyticsHBI"), c = t("../GameState/HighScore"),
            a = t("../LeaderBoards/LeaderBoardSection"), l = t("../Helpers/ArrayExtra"),
            h = t("../Settings/SettingsMenu"), u = t("../LeaderBoards/LeaderBoardInvite"), d = t("../GameSettings"),
            p = cc._decorator, f = p.ccclass, _ = p.property, m = function (t) {
                function e() {
                    var l = null !== t && t.apply(this, arguments) || this;
                    return l.retryButton = null, l.continueButton = null, l.settingsMenu = null, l.loadingAdScreen = null, l.generatingImageScreen = null, l.leaderBoardScrollView = null, l.leaderBoardEntries = null, l.leaderBoardInvite = null, l.scrollContent = null, l.leaderBoardSection = null, l.shareButton = null, l.background = null, l.screenShotArea = null, l.highscoreLabel = null, l.points = 0, l.shown = !1, l.settingsShown = !1, l.continueCount = 0, l.retryCount = 0, l.gameTypeEmit = "", l.highScoreImage = "", l.sharingInProgress = !1, l.onDummy = function (t) {
                    }, l.onContinueButton = function (t) {
                        wxHelper.showVideoAd(function () {
                            l.gameTypeEmit = i.CONTINUE, l.hide()
                        })
                    }, l.onShareButton = function (t) {
                        if (window.FBInstant && !l.sharingInProgress) {
                            l.sharingInProgress = !0;
                            var e = window.FBInstant.player.getPhoto(), i = window.FBInstant.player.getName(),
                                n = window.FBInstant.player.getID(), o = l.points, r = 1 == l.points ? "Point" : "Points",
                                s = i + " scored " + l.points + " " + r + ". Your turn!", a = o.toString() + " " + r;
                            "" != l.highScoreImage ? l.shareHighScoreNormal(s) : (l.generatingImageScreen.active = !0, c.default.getHighScoreImage(n, e, i, a, l.points).then(function (t) {
                                l.highScoreImage = t.image, l.shareHighScoreNormal(s)
                            }))
                        }
                    }, l.onRetryButton = function (t) {
                        l.continueFromRetry()
                    }, l
                }

                return __extends(e, t), (i = e).prototype.start = function () {
                    this.loadingAdScreen.active = !1, this.generatingImageScreen.active = !1, this.node.active = !1;
                }, e.prototype.onEnable = function () {
                    this.anim = this.node.getComponent(cc.Animation), this.addEventListeners();
                }, e.prototype.onDisable = function () {
                    this.removeEventListeners()
                }, e.prototype.addEventListeners = function () {
                    var e = this;
                    this.background.on(cc.Node.EventType.TOUCH_END, this.onDummy), this.continueButton.on(cc.Node.EventType.TOUCH_END, this.onContinueButton), this.shareButton.on(cc.Node.EventType.TOUCH_END, this.onShareButton), this.node.on(a.default.CONTEXT_SELECTED, function (t) {
                        t.stopPropagation(), e.continueCount = 0, e.gameTypeEmit = i.RETRY, e.hide()
                    }), this.retryButton.on(cc.Node.EventType.TOUCH_END, this.onRetryButton)
                }, e.prototype.removeEventListeners = function () {
                    this.background.off(cc.Node.EventType.TOUCH_END, this.onDummy), this.continueButton.off(cc.Node.EventType.TOUCH_END, this.onContinueButton), this.shareButton.off(cc.Node.EventType.TOUCH_END, this.onShareButton), this.retryButton.off(cc.Node.EventType.TOUCH_END, this.onRetryButton)
                }, e.prototype.show = function () {
                    this.leaderBoardScrollView.opacity = 0, this.shown = !0, this.node.active = !0, 0 == this.continueCount ? (this.continueCount++, this.anim.play("GameOverScreen_Intro_ShowVideoAd")) : this.anim.play("GameOverScreen_Intro_NoVideoAd"), o.default.logEvent("launch_gameover"), this.leaderBoardScrollView.position = new cc.Vec2(0, -400)
                    var self = this;
                    // sceneManager.showGameEnd({
                    //     shareType: 2, onContinue: function () {
                    //         self.onContinueButton();
                    //         wxHelper.showBannerAd(null, 30);
                    //     }, onRestart: function () {
                    //         self.continueFromRetry();
                    //         wxHelper.showBannerAd(null, 30);
                    //     }
                    // }, this.points);
                }, e.prototype.storeHighscore = function () {
                    // if (window.h5api) window.h5api.submitScore(123, function (obj) {
                    //     if(obj.code === 10000){
                    //         console.log('上传成功');
                    //         window.h5api.getRank(function(obj){
                    //             console.log('代码:' + obj.code + ',消息:' + obj.message + ',数据:' + obj.data)
                    //             if(obj.code === 10000){
                    //                 console.log('获取成功')
                    //                 var data = obj.data
                    //                 for(var i = 0; i < data.length; i++){
                    //                     console.log('积分:' + data[i].score + ',排名:' + data[i].rank);
                    //                 }
                    //             } else{
                    //                 console.log('获取失败')
                    //             }
                    //
                    //         })
                    //     } else {
                    //         console.log('上传失败')
                    //     }
                    // });
                }, e.prototype.generateHighscoreList = function () {
                    var o = this;
                    window.FBInstant && window.FBInstant.player.getConnectedPlayersAsync().then(function (t) {
                        for (var e = [], i = 0; i < t.length; i++) {
                            var n = t[i];
                            e.push(n.getID())
                        }
                        e.push(window.FBInstant.player.getID()), c.default.fetchHighscoreDB(e).then(function (t) {
                            o.addPlayersToList(t.players)
                        })
                    })
                }, e.prototype.addPlayersToList = function (t) {
                    var e = this;
                    this.leaderBoardEntries.removeAllChildren(), t = l.default.orderBy(t, "highscore").reverse(), cc.instantiate(this.leaderBoardInvite).getComponent(u.default).node.parent = this.leaderBoardEntries;
                    for (var i = 0; i < t.length; i++) {
                        var n = t[i], o = (i + 1).toString(),
                            r = cc.instantiate(this.leaderBoardSection).getComponent(a.default);
                        r.node.parent = this.leaderBoardEntries, r.setName(n.name), r.setRank(o), r.setPhoto(n.photo), r.setPlayerID(n.playerID), r.setScore(n.highscore), n.playerID == window.FBInstant.player.getID() && (r.disablePlayButton(), this.highscoreLabel.string = "BEST " + n.highscore)
                    }
                    s.TweenMax.delayedCall(.4, function () {
                        e.calculateContentHeight()
                    })
                }, e.prototype.calculateContentHeight = function () {
                    var e = 0;
                    this.leaderBoardEntries.children.forEach(function (t) {
                        t.position.y + t.height > e && (e = t.position.y + t.height)
                    }), e += 200, this.scrollContent.height += e
                }, e.prototype.autoShare = function () {
                    var e = this;
                    if (window.FBInstant) {
                        var t = window.FBInstant.player.getPhoto(), i = window.FBInstant.player.getName(),
                            n = window.FBInstant.player.getID(), o = this.points, r = 1 == this.points ? "Point" : "Points",
                            s = i + " scored " + this.points + " " + r + ". Your turn!", a = o.toString() + " " + r;
                        "THREAD" == window.FBInstant.context.getType() ? c.default.getHighScoreImage(n, t, i, a, this.points).then(function (t) {
                            e.highScoreImage = t.image, e.shareHighScoreCustom(s)
                        }) : c.default.getHighScoreImage(n, t, i, a, this.points).then(function (t) {
                            e.highScoreImage = t.image
                        })
                    }
                }, e.prototype.shareHighScoreCustom = function (t) {
                    var e = this;
                    n.default.shareCustom(t, this.highScoreImage).then(function () {
                        e.sharingInProgress = !1
                    }, function () {
                        e.sharingInProgress = !1
                    })
                }, e.prototype.shareHighScoreNormal = function (t) {
                    var e = this;
                    n.default.shareNormal(t, this.highScoreImage).then(function () {
                        e.sharingInProgress = !1, e.generatingImageScreen.active = !1
                    }, function () {
                        e.sharingInProgress = !1, e.generatingImageScreen.active = !1
                    })
                }, e.prototype.hide = function () {
                    this.highScoreImage = "", this.loadingAdScreen.active = !1, this.anim.play("GameOverScreen_Outro")
                }, e.prototype.continueFromRetry = function () {
                    this.retryCount++, o.default.logEvent("game_replay"), this.continueCount = 0, this.gameTypeEmit = i.RETRY, this.hide()
                }, e.prototype.outroAnimationDone = function () {
                    console.log("outroAnimationDone====>", this.gameTypeEmit)
                    this.shown = !1, this.node.emit(this.gameTypeEmit), this.node.active = !1
                }, e.prototype.showLeaderboard = function () {
                    // (this.leaderBoardScrollView.position = new cc.Vec2(0, -cc.director.getVisibleSize().height / 2), s.TweenMax.to(this.leaderBoardScrollView, .5, {
                    //     y: 0,
                    //     opacity: 255,
                    //     ease: s.Quad.easeOut
                    // }), this.storeHighscore())
                }, e.prototype.showSettingsMenu = function () {
                    this.settingsMenu.activate(!0)
                }, e.prototype.hideSettingsMenu = function () {
                    this.settingsMenu.activate(!1)
                }, e.RETRY = "RETRY", e.CONTINUE = "CONTINUE", __decorate([_(cc.Node)], e.prototype, "retryButton", void 0), __decorate([_(cc.Node)], e.prototype, "continueButton", void 0), __decorate([_(h.default)], e.prototype, "settingsMenu", void 0), __decorate([_(cc.Node)], e.prototype, "loadingAdScreen", void 0), __decorate([_(cc.Node)], e.prototype, "generatingImageScreen", void 0), __decorate([_(cc.Node)], e.prototype, "leaderBoardScrollView", void 0), __decorate([_(cc.Node)], e.prototype, "leaderBoardEntries", void 0), __decorate([_(cc.Prefab)], e.prototype, "leaderBoardInvite", void 0), __decorate([_(cc.Node)], e.prototype, "scrollContent", void 0), __decorate([_(cc.Prefab)], e.prototype, "leaderBoardSection", void 0), __decorate([_(cc.Node)], e.prototype, "shareButton", void 0), __decorate([_(cc.Node)], e.prototype, "background", void 0), __decorate([_(cc.Node)], e.prototype, "screenShotArea", void 0), __decorate([_(cc.Label)], e.prototype, "highscoreLabel", void 0), e = i = __decorate([f], e);
                var i
            }(cc.Component);
        i.default = m, cc._RF.pop()
    }, {
        "../Analytics/Analytics": "Analytics",
        "../Analytics/AnalyticsHBI": "AnalyticsHBI",
        "../GameSettings": "GameSettings",
        "../GameState/FaceBookShare": "FaceBookShare",
        "../GameState/HighScore": "HighScore",
        "../Helpers/ArrayExtra": "ArrayExtra",
        "../LeaderBoards/LeaderBoardInvite": "LeaderBoardInvite",
        "../LeaderBoards/LeaderBoardSection": "LeaderBoardSection",
        "../Settings/SettingsMenu": "SettingsMenu",
        gsap: 1
    }],
    GameSettings: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "3ceedAGmeBPRIcM/+rMxE80", "GameSettings"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = function () {
            function t() {
            }

            return t.startGravity = -2400, t.gravity = -2400, t.ballGravityScaleNormal = 2, t.ballGravityScaleLittle = .1, t.physicsSlowSpeed = .2, t.physicsNormalSpeed = 1, t.bounceForce = new cc.Vec2(300, 1400), t.overrideShowSocialFeatures = !1, t.showInterstitialAds = !0, t
        }();
        i.default = n, cc._RF.pop()
    }, {}],
    Gradient: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "11393O7NnBKUJqo85UoIWGD", "Gradient"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = function () {
            function t() {
            }

            return t.hexToRgb = function (t) {
                return 3 !== (t = t.replace("#", "")).length && 6 !== t.length ? [255, 255, 255] : (3 == t.length && (t = t[0] + t[0] + t[1] + t[1] + t[2] + t[2]), [parseInt(t.substr(0, 2), 16), parseInt(t.substr(2, 2), 16), parseInt(t.substr(4, 2), 16)])
            }, t.rgbToHex = function (t) {
                return t[0] = 255 < t[0] ? 255 : t[0] < 0 ? 0 : t[0], t[1] = 255 < t[1] ? 255 : t[1] < 0 ? 0 : t[1], t[2] = 255 < t[2] ? 255 : t[2] < 0 ? 0 : t[2], this.zeroFill(t[0].toString(16), 2) + this.zeroFill(t[1].toString(16), 2) + this.zeroFill(t[2].toString(16), 2)
            }, t.zeroFill = function (t, e) {
                return 0 < (e -= t.toString().length) ? [e + (/\./.test(t) ? 2 : 1)].join("0") + t : t
            }, t.generateGradient = function (t, e, i) {
                var n = [];
                t = this.hexToRgb(t), e = this.hexToRgb(e), i -= 1;
                var o = (Math.max(t[0], e[0]) - Math.min(t[0], e[0])) / i,
                    r = (Math.max(t[1], e[1]) - Math.min(t[1], e[1])) / i,
                    s = (Math.max(t[2], e[2]) - Math.min(t[2], e[2])) / i;
                n.push("#" + this.rgbToHex(t));
                for (var a = t[0], l = t[1], c = t[2], h = 0; h < i - 1; h++) a = t[0] < e[0] ? a + Math.round(o) : a - Math.round(o), l = t[1] < e[1] ? l + Math.round(r) : l - Math.round(r), c = t[2] < e[2] ? c + Math.round(s) : c - Math.round(s), n.push("#" + this.rgbToHex([a, l, c]));
                return n.push("#" + this.rgbToHex(e)), n
            }, t.gradientList = function (t, e, i) {
                return this.generateGradient(t, e, i)
            }, t
        }();
        i.default = n, cc._RF.pop()
    }, {}],
    HighScore: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "f5f1eUMueNAmLi89GNF4iJs", "HighScore"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = function () {
            function t() {
            }

            return t.setHighScore = function (i) {
                var hightScore = this.getHighScore();
                cc.sys.localStorage.setItem("highScore", Math.max(i, hightScore));
            }, t.getHighScore = function () {
                return cc.sys.localStorage.getItem("highScore");
            }, t.getHighScoreImage = function (o, r, s, a, l) {
                var c = this;
                return new Promise(function (e, i) {
                    var t = JSON.stringify({playerID: o, photo: r, name: s, scoreText: a, scoreValue: l}),
                        n = new XMLHttpRequest;
                    n.onreadystatechange = function () {
                        if (4 == n.readyState && 200 == n.status) {
                            var t = JSON.parse(n.responseText);
                            t.error ? i(t) : e(t)
                        }
                    }, n.onerror = function (t) {
                        i({error: "failed storing high score"})
                    }, n.open("POST", c.getHighscoreImageUrl, !0), n.setRequestHeader("Content-Type", "application/json"), n.send(t)
                })
            }, t.storeHighscoreDB = function (a, l, c, h) {
                return __awaiter(this, void 0, void 0, function () {
                    var s = this;
                    return __generator(this, function (t) {
                        return [2, new Promise(function (o, r) {
                            s.getConnectedPlayers().then(function (t) {
                                var e = {highscore: a, playerID: l, name: c, photo: h, connectedPlayers: t},
                                    i = JSON.stringify(e), n = new XMLHttpRequest;
                                n.onreadystatechange = function () {
                                    if (4 == n.readyState && 200 == n.status) {
                                        var t = JSON.parse(n.responseText);
                                        t.error ? r(t) : o(t)
                                    }
                                }, n.onerror = function (t) {
                                    r({error: "failed storing high score"})
                                }, n.open("POST", s.setHighscoreUrl, !0), n.setRequestHeader("Content-Type", "application/json"), n.send(i)
                            })
                        })]
                    })
                })
            }, t.fetchHighscoreDB = function (r) {
                return __awaiter(this, void 0, void 0, function () {
                    var o = this;
                    return __generator(this, function (t) {
                        return [2, new Promise(function (e, i) {
                            var t = JSON.stringify({playerIDs: r}), n = new XMLHttpRequest;
                            n.onreadystatechange = function () {
                                if (4 == n.readyState && 200 == n.status) {
                                    var t = JSON.parse(n.responseText);
                                    t.error ? i(t) : e(t)
                                }
                            }, n.onerror = function (t) {
                                i({error: "failed storing high score"})
                            }, n.open("POST", o.getHighscoreUrl, !0), n.setRequestHeader("Content-Type", "application/json"), n.send(t)
                        })]
                    })
                })
            }, t.getConnectedPlayers = function () {
                return __awaiter(this, void 0, void 0, function () {
                    return __generator(this, function (t) {
                        return [2, new Promise(function (o, t) {
                            window.FBInstant.player.getConnectedPlayersAsync().then(function (t) {
                                for (var e = [], i = 0; i < t.length; i++) {
                                    var n = t[i].$ConnectedPlayer1;
                                    e.push(n)
                                }
                                o(e)
                            })
                        })]
                    })
                })
            }, t.getHighscoreUrl = "https://basketball.chatterbox.games:8001/fetchHighScores", t.setHighscoreUrl = "https://basketball.chatterbox.games:8001/storeHighScore", t.getHighscoreImageUrl = "https://basketball.chatterbox.games:8081/getScoreImage", t
        }();
        i.default = n, cc._RF.pop()
    }, {}],
    LeaderBoardInvite: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "ea415wHyxJLwK/Sf52f95wf", "LeaderBoardInvite"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = cc._decorator, o = n.ccclass, r = n.property, s = function (t) {
            function e() {
                var e = null !== t && t.apply(this, arguments) || this;
                return e.inviteButton = null, e.onClicked = function (t) {
                    e.inviteFriends()
                }, e
            }

            return __extends(e, t), (i = e).prototype.start = function () {
                this.addEventListeners()
            }, e.prototype.onEnabled = function () {
                this.addEventListeners()
            }, e.prototype.onDisabled = function () {
                this.removeEventListeners()
            }, e.prototype.addEventListeners = function () {
                this.inviteButton.on(cc.Node.EventType.TOUCH_END, this.onClicked)
            }, e.prototype.removeEventListeners = function () {
                this.inviteButton.off(cc.Node.EventType.TOUCH_END, this.onClicked)
            }, e.prototype.inviteFriends = function () {
                var e = this;
                window.FBInstant && window.FBInstant.context.chooseAsync().then(function (t) {
                    e.node.dispatchEvent(new cc.Event.EventCustom(i.CONTEXT_SELECTED, !0))
                }, function (t) {
                }).catch(function (t) {
                })
            }, e.CONTEXT_SELECTED = "LEADER_BOARD_INVITE_CONTEXT_SELECTED", __decorate([r(cc.Node)], e.prototype, "inviteButton", void 0), e = i = __decorate([o], e);
            var i
        }(cc.Component);
        i.default = s, cc._RF.pop()
    }, {}],
    LeaderBoardSection: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "605ccSQPr5B+bE+/ke/qHLX", "LeaderBoardSection"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = cc._decorator, o = n.ccclass, r = n.property, s = function (t) {
            function e() {
                var i = null !== t && t.apply(this, arguments) || this;
                return i.nameLabel = null, i.scoreLabel = null, i.rankLabel = null, i.playButton = null, i.profileImage = null, i.onClicked = function (t) {
                    i.switchContext()
                }, i.imageLoaded = function (t, e) {
                    t || (i.profileImage.spriteFrame = new cc.SpriteFrame(e), i.profileImage.node.opacity = 255)
                }, i
            }

            return __extends(e, t), (i = e).prototype.start = function () {
                this.addEventListeners()
            }, e.prototype.onEnabled = function () {
                this.addEventListeners()
            }, e.prototype.onDisabled = function () {
                this.removeEventListeners()
            }, e.prototype.addEventListeners = function () {
                this.playButton.on(cc.Node.EventType.TOUCH_END, this.onClicked)
            }, e.prototype.removeEventListeners = function () {
                this.playButton.off(cc.Node.EventType.TOUCH_END, this.onClicked)
            }, e.prototype.switchContext = function () {
                var e = this;
                window.FBInstant && window.FBInstant.context.createAsync(this.playerID).then(function () {
                    e.node.dispatchEvent(new cc.Event.EventCustom(i.CONTEXT_SELECTED, !0))
                }, function (t) {
                    e.node.dispatchEvent(new cc.Event.EventCustom(i.CONTEXT_SELECTED, !0))
                }).catch(function (t) {
                })
            }, e.prototype.setName = function (t) {
                this.nameLabel.string = t
            }, e.prototype.setScore = function (t) {
                this.scoreLabel.string = t
            }, e.prototype.setRank = function (t) {
                this.rankLabel.string = t
            }, e.prototype.setPlayerID = function (t) {
                this.playerID = t
            }, e.prototype.disablePlayButton = function () {
                this.playButton.active = !1
            }, e.prototype.setPhoto = function (t) {
                cc.loader.load({url: t, type: "png"}, this.imageLoaded)
            }, e.CONTEXT_SELECTED = "LEADER_BOARD_SECTION_CONTEXT_SELECTED", __decorate([r(cc.Label)], e.prototype, "nameLabel", void 0), __decorate([r(cc.Label)], e.prototype, "scoreLabel", void 0), __decorate([r(cc.Label)], e.prototype, "rankLabel", void 0), __decorate([r(cc.Node)], e.prototype, "playButton", void 0), __decorate([r(cc.Sprite)], e.prototype, "profileImage", void 0), e = i = __decorate([o], e);
            var i
        }(cc.Component);
        i.default = s, cc._RF.pop()
    }, {}],
    LeaderBoardStartView: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "72543eNRyVARorGtWOfIrVH", "LeaderBoardStartView"), Object.defineProperty(i, "__esModule", {value: !0});
        var r = t("../GameState/HighScore"), s = t("./LeaderBoardSection"), a = t("../Helpers/ArrayExtra"),
            l = t("./LeaderBoardInvite"), n = t("../GameSettings"), o = cc._decorator, c = o.ccclass, h = o.property,
            u = function (t) {
                function e() {
                    var e = null !== t && t.apply(this, arguments) || this;
                    return e.playButton = null, e.background = null, e.leaderBoardEntries = null, e.scrollContent = null, e.leaderBoardInvite = null, e.leaderBoardSection = null, e.onDummy = function (t) {
                    }, e.onContext = function (t) {
                        e.hide(), t.stopPropagation()
                    }, e.onPlayButtonClicked = function (t) {
                        e.hide()
                    }, e
                }

                return __extends(e, t), (i = e).prototype.start = function () {
                    this.node.opacity = 0, window.FBInstant || n.default.overrideShowSocialFeatures ? (this.addEventListeners(), this.generateHighscoreList()) : this.node.active = !1
                }, e.prototype.generateHighscoreList = function () {
                    var o = this;
                    window.FBInstant && window.FBInstant.player.getConnectedPlayersAsync().then(function (t) {
                        for (var e = [], i = 0; i < t.length; i++) {
                            var n = t[i];
                            e.push(n.getID())
                        }
                        e.push(window.FBInstant.player.getID()), r.default.fetchHighscoreDB(e).then(function (t) {
                            o.addPlayersToList(t.players), o.show()
                        })
                    })
                }, e.prototype.addPlayersToList = function (t) {
                    this.leaderBoardEntries.removeAllChildren(), t = a.default.orderBy(t, "highscore").reverse(), cc.instantiate(this.leaderBoardInvite).getComponent(l.default).node.parent = this.leaderBoardEntries;
                    for (var e = 0; e < t.length; e++) {
                        var i = t[e], n = (e + 1).toString(),
                            o = cc.instantiate(this.leaderBoardSection).getComponent(s.default);
                        o.node.parent = this.leaderBoardEntries, o.setName(i.name), o.setRank(n), o.setPhoto(i.photo), o.setPlayerID(i.playerID), o.setScore(i.highscore), i.playerID == window.FBInstant.player.getID() && o.disablePlayButton()
                    }
                }, e.prototype.addEventListeners = function () {
                    this.background.on(cc.Node.EventType.TOUCH_END, this.onDummy), this.playButton.on(cc.Node.EventType.TOUCH_END, this.onPlayButtonClicked), this.node.on(s.default.CONTEXT_SELECTED, this.onContext), this.node.on(l.default.CONTEXT_SELECTED, this.onContext)
                }, e.prototype.removeEventListeners = function () {
                    this.background.off(cc.Node.EventType.TOUCH_END, this.onDummy), this.playButton.off(cc.Node.EventType.TOUCH_END, this.onPlayButtonClicked), this.node.off(s.default.CONTEXT_SELECTED, this.onContext), this.node.off(l.default.CONTEXT_SELECTED, this.onContext)
                }, e.prototype.show = function () {
                    this.node.active = !0, this.anim = this.node.getComponent(cc.Animation), this.anim.play("LeaderboardScreen_Intro"), this.node.opacity = 255
                }, e.prototype.hide = function () {
                    this.anim = this.node.getComponent(cc.Animation), this.anim.play("LeaderboardScreen_Outro")
                }, e.prototype.outroDone = function () {
                    this.node.active = !1, this.node.emit(i.SHOW_TUTORIAL_ANIM)
                }, e.SHOW_TUTORIAL_ANIM = "SHOW_TUTORIAL_ANIM", __decorate([h(cc.Node)], e.prototype, "playButton", void 0), __decorate([h(cc.Node)], e.prototype, "background", void 0), __decorate([h(cc.Node)], e.prototype, "leaderBoardEntries", void 0), __decorate([h(cc.Node)], e.prototype, "scrollContent", void 0), __decorate([h(cc.Prefab)], e.prototype, "leaderBoardInvite", void 0), __decorate([h(cc.Prefab)], e.prototype, "leaderBoardSection", void 0), e = i = __decorate([c], e);
                var i
            }(cc.Component);
        i.default = u, cc._RF.pop()
    }, {
        "../GameSettings": "GameSettings",
        "../GameState/HighScore": "HighScore",
        "../Helpers/ArrayExtra": "ArrayExtra",
        "./LeaderBoardInvite": "LeaderBoardInvite",
        "./LeaderBoardSection": "LeaderBoardSection"
    }],
    MathExtra: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "288796lpUNKi50eJKUTMUB/", "MathExtra"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = function () {
            function t() {
            }

            return t.clamp = function (t, e, i) {
                return Math.min(Math.max(t, e), i)
            }, t.randomBetween = function (t, e) {
                return Math.floor(Math.random() * e) + t
            }, t.lerp = function (t, e, i) {
                return t + (e - t) * (i = 1 < (i = i < 0 ? 0 : i) ? 1 : i)
            }, t.rangeToRange = function (t, e, i, n, o) {
                return (t - e) * (o - n) / (i - e) + n
            }, t
        }();
        i.default = n, cc._RF.pop()
    }, {}],
    OuterNetCollider: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "d7d04D3ECtHM6NvSDfNav5A", "OuterNetCollider"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = t("gsap"), o = cc._decorator, r = o.ccclass, s = o.property, a = function (e) {
            function t() {
                var t = null !== e && e.apply(this, arguments) || this;
                return t.netBack = void 0, t.netFront = void 0, t.side = "", t
            }

            return __extends(t, e), t.prototype.netBounce = function (t) {
                var e = 1;
                "right" == this.side && (e = -1), n.TweenMax.to(this.netBack, .05, {
                    rotation: 10 * t,
                    delay: 0,
                    ease: n.Quad.easeOut
                }), n.TweenMax.to(this.netFront, .05, {
                    rotation: 10 * t * e,
                    delay: 0,
                    ease: n.Quad.easeOut
                }), n.TweenMax.to(this.netBack, .1, {
                    rotation: 0,
                    delay: .05,
                    ease: n.Quad.easeIn
                }), n.TweenMax.to(this.netFront, .1, {rotation: 0, delay: .05, ease: n.Quad.easeIn})
            }, t.prototype.onBeginContact = function (t, e, i) {
                "Ball" == t.colliderB.node.name && t.colliderB.body.linearVelocity.y < -500 && this.netBounce(.5)
            }, __decorate([s(cc.Node)], t.prototype, "netBack", void 0), __decorate([s(cc.Node)], t.prototype, "netFront", void 0), __decorate([s(cc.String)], t.prototype, "side", void 0), t = __decorate([r], t)
        }(cc.Component);
        i.default = a, cc._RF.pop()
    }, {gsap: 1}],
    ParticlesExtra: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "ef03efLyVVIEYtU13J5hDUg", "ParticlesExtra"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = function () {
            function t() {
            }

            return t.freeze = function (t) {
                this.cachedFreezeUpdate = t._sgNode.update, t._sgNode.update = function () {
                }
            }, t.unfreeze = function (t) {
                t._sgNode.update = this.cachedFreezeUpdate
            }, t
        }();
        i.default = n, cc._RF.pop()
    }, {}],
    PauseButton: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "48c8dBUisNJV68aXitc5MbT", "PauseButton"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = cc._decorator, o = n.ccclass, r = (n.property, function (t) {
            function e() {
                var e = null !== t && t.apply(this, arguments) || this;
                return e.onPauseButton = function (t) {
                    e.node.emit(i.PAUSE)
                }, e
            }

            return __extends(e, t), (i = e).prototype.onEnable = function () {
                this.addEventListeners()
            }, e.prototype.onDisable = function () {
                this.removeEventListeners()
            }, e.prototype.addEventListeners = function () {
                this.node.on(cc.Node.EventType.TOUCH_END, this.onPauseButton)
            }, e.prototype.removeEventListeners = function () {
                this.node.off(cc.Node.EventType.TOUCH_END, this.onPauseButton)
            }, e.prototype.show = function () {
                this.node.opacity = 255
            }, e.prototype.hide = function () {
                this.node.opacity = 0
            }, e.prototype.start = function () {
                var widget = this.getComponent(cc.Widget);
                widget.top += sceneManager.topOffset() - 10;
            }, e.PAUSE = "PAUSE_BUTTON_PAUSE", e = i = __decorate([o], e);
            var i
        }(cc.Component));
        i.default = r, cc._RF.pop()
    }, {}],
    PauseView: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "f933avSxWtNGpGj3JS/AUM9", "PauseView"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = t("../Settings/SettingsMenu"), o = cc._decorator, r = o.ccclass, s = o.property, a = function (t) {
            function e() {
                var e = null !== t && t.apply(this, arguments) || this;
                return e.continueButton = null, e.background = null, e.settingsMenu = null, e.onContinueButton = function (t) {
                    e.hide()
                }, e.onDummy = function (t) {
                }, e
            }

            return __extends(e, t), (i = e).prototype.onEnable = function () {
                this.anim = this.node.getComponent(cc.Animation), this.addEventListeners()
            }, e.prototype.onDisable = function () {
                this.removeEventListeners()
            }, e.prototype.addEventListeners = function () {
                this.continueButton.node.on(cc.Node.EventType.TOUCH_END, this.onContinueButton), this.background.on(cc.Node.EventType.TOUCH_END, this.onDummy)
            }, e.prototype.removeEventListeners = function () {
                this.continueButton.node.off(cc.Node.EventType.TOUCH_END, this.onContinueButton), this.background.off(cc.Node.EventType.TOUCH_END, this.onDummy)
            }, e.prototype.show = function () {
                this.node.active = !0, this.anim.play("PauseScreen_Intro")
            }, e.prototype.hide = function () {
                this.anim.play("PauseScreen_Outro")
            }, e.prototype.outroAnimationDone = function () {
                this.node.emit(i.UNPAUSE), this.node.active = !1
            }, e.prototype.showSettingsMenu = function () {
                this.settingsMenu.activate(!0)
            }, e.prototype.hideSettingsMenu = function () {
                this.settingsMenu.activate(!1)
            }, e.UNPAUSE = "PAUSE_VIEW_UNPAUSE", __decorate([s(cc.Button)], e.prototype, "continueButton", void 0), __decorate([s(cc.Node)], e.prototype, "background", void 0), __decorate([s(n.default)], e.prototype, "settingsMenu", void 0), e = i = __decorate([r], e);
            var i
        }(cc.Component);
        i.default = a, cc._RF.pop()
    }, {"../Settings/SettingsMenu": "SettingsMenu"}],
    Perlin: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "25096B6V1BDTbYLgY5Uwz+Q", "Perlin"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = function () {
            function t() {
            }

            return t.noise = function (t, e, i) {
                for (var n = function (t) {
                    return t * t * t * (t * (6 * t - 15) + 10)
                }, o = function (t, e, i) {
                    return e + t * (i - e)
                }, r = function (t, e, i, n) {
                    var o = 15 & t, r = o < 8 ? e : i, s = o < 4 ? i : 12 == o || 14 == o ? e : n;
                    return (0 == (1 & o) ? r : -r) + (0 == (2 & o) ? s : -s)
                }, s = new Array(512), a = [151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180], l = 0; l < 256; l++) s[256 + l] = s[l] = a[l];
                var c = 255 & Math.floor(t), h = 255 & Math.floor(e), u = 255 & Math.floor(i);
                t -= Math.floor(t), e -= Math.floor(e), i -= Math.floor(i);
                var d = n(t), p = n(e), f = n(i), _ = s[c] + h, m = s[_] + u, y = s[_ + 1] + u, g = s[c + 1] + h,
                    v = s[g] + u, T = s[g + 1] + u;
                return (1 + o(f, o(p, o(d, r(s[m], t, e, i), r(s[v], t - 1, e, i)), o(d, r(s[y], t, e - 1, i), r(s[T], t - 1, e - 1, i))), o(p, o(d, r(s[m + 1], t, e, i - 1), r(s[v + 1], t - 1, e, i - 1)), o(d, r(s[y + 1], t, e - 1, i - 1), r(s[T + 1], t - 1, e - 1, i - 1))))) / 2
            }, t
        }();
        i.default = n, cc._RF.pop()
    }, {}],
    PhysicsSettings: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "749bbvei+ZObq8AUWRtmw43", "PhysicsSettings"), cc.game.setFrameRate(60), cc.director.getPhysicsManager().enabled = !0, cc._RF.pop()
    }, {}],
    ScreenShot: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "103c1nOf6pGRZXR5UCK2/nE", "ScreenShot"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = function () {
            function t() {
            }

            return t.part = function (n, o, r, s) {
                var a = this;
                return new Promise(function (e, t) {
                    var i = document.getElementById("GameCanvas").getContext("webgl", {
                        preserveDrawingBuffer: !0,
                        alpha: !1,
                        premultipliedAlpha: !1
                    }).canvas.toDataURL();
                    a.cropPlusExport(i, n, o, r, s).then(function (t) {
                        e(t)
                    })
                })
            }, t.full = function (n, o) {
                var r = this;
                return new Promise(function (e, t) {
                    var i = document.getElementById("GameCanvas").getContext("webgl", {
                        preserveDrawingBuffer: !0,
                        alpha: !1,
                        premultipliedAlpha: !1
                    }).canvas.toDataURL();
                    r.cropPlusExport(i, 0, 0, n, o).then(function (t) {
                        e(t)
                    })
                })
            }, t.cropPlusExport = function (e, r, s, a, l) {
                return new Promise(function (n, t) {
                    var o = new Image;
                    o.onload = function () {
                        var t = document.createElement("Canvas"), e = t.getContext("2d");
                        t.width = a, t.height = l, e.drawImage(o, r, s, a, l, 0, 0, a, l);
                        var i = t.toDataURL();
                        n(i)
                    }, o.src = e
                })
            }, t.openTestImage = function (t, e, i) {
            }, t
        }();
        i.default = n, cc._RF.pop()
    }, {}],
    SettingsMenu: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "e2f5dB+Zm1PmorCzY3R8+/a", "SettingsMenu"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = t("gsap"), o = t("../Common/AudioManager"), r = t("../Analytics/Analytics"),
            s = t("../Analytics/AnalyticsHBI"), a = t("./AudioToggle"), l = t("../About/AboutView"), c = cc._decorator,
            h = c.ccclass, u = c.property, d = function (t) {
                function e() {
                    var e = null !== t && t.apply(this, arguments) || this;
                    return e.settingsMenuButton = null, e.soundToggle = null, e.musicToggle = null, e.aboutButton = null, e.aboutView = null, e.anim = null, e.onSettingsButton = function (t) {
                        e.settingsShown ? e.hide() : (e.show(), s.default.logEvent("menu", "button", "menu", "options_clicked", null))
                    }, e.onMusicToggled = function (t) {
                        o.default.musicVolume = e.musicToggle.isOn ? 1 : 0, o.default.setMusicVolume(o.default.musicVolume), o.default.storeAudioSettings(), e.trackUserSettings(), e.soundToggle.isOn ? s.default.logEvent("menu", "options", "", "music_turned_on", null) : s.default.logEvent("menu", "options", "", "music_turned_off", null)
                    }, e.onSoundToggled = function (t) {
                        o.default.sfxVolume = e.soundToggle.isOn ? 1 : 0, o.default.setSfxVolume(o.default.sfxVolume), o.default.storeAudioSettings(), e.trackUserSettings(), e.soundToggle.isOn ? s.default.logEvent("menu", "options", "", "sound_turned_on", null) : s.default.logEvent("menu", "options", "", "sound_turned_off", null)
                    }, e.onAboutClicked = function (t) {
                        e.aboutView && (e.aboutView.show(), s.default.logEvent("menu", "options", "", "about_clicked", ""))
                    }, e
                }

                return __extends(e, t), e.prototype.start = function () {
                    var widget = this.getComponent(cc.Widget);
                    widget.top += sceneManager.topOffset() - 10;
                    widget.updateAlignment();
                    this.addEventListeners()
                }, e.prototype.addEventListeners = function () {
                    this.settingsMenuButton.on(cc.Node.EventType.TOUCH_END, this.onSettingsButton), this.musicToggle.node.on(a.default.TOGGLED, this.onMusicToggled), this.soundToggle.node.on(a.default.TOGGLED, this.onSoundToggled), this.aboutButton.on(cc.Node.EventType.TOUCH_END, this.onAboutClicked)
                }, e.prototype.show = function () {
                    var t = this;
                    this.settingsShown || (o.default.init().then(function () {
                        t.initToggles()
                    }), this.anim = this.node.getComponent(cc.Animation), this.anim.play("SettingsMenu_Open"), this.settingsShown = !0)
                }, e.prototype.hide = function () {
                    this.settingsShown && (this.anim = this.node.getComponent(cc.Animation), this.anim.play("SettingsMenu_Close"), this.settingsShown = !1)
                }, e.prototype.initToggles = function () {
                    0 < o.default.musicVolume ? (this.musicToggle.slideToOn(), o.default.musicVolume = 1, o.default.setMusicVolume(1)) : (this.musicToggle.slideToOff(), o.default.musicVolume = 0, o.default.setMusicVolume(0)), 0 < o.default.sfxVolume ? (this.soundToggle.slideToOn(), o.default.sfxVolume = 1, o.default.setSfxVolume(1)) : (this.soundToggle.slideToOff(), o.default.sfxVolume = 0, o.default.setSfxVolume(0))
                }, e.prototype.trackUserSettings = function () {
                    r.default.logEvent("UserSettings", null, {
                        MusicOn: this.musicToggle.isOn,
                        SoundOn: this.soundToggle.isOn
                    })
                }, e.prototype.activate = function (t) {
                    var e = this;
                    t ? (this.node.active = !0, this.node.opacity = 0, n.TweenMax.to(this.node, .5, {
                        opacity: 255,
                        delay: .6
                    })) : (this.node.opacity = 255, n.TweenMax.to(this.node, .5, {
                        opacity: 0, onComplete: function () {
                            e.hide(), e.node.active = !1
                        }
                    }))
                }, __decorate([u(cc.Node)], e.prototype, "settingsMenuButton", void 0), __decorate([u(a.default)], e.prototype, "soundToggle", void 0), __decorate([u(a.default)], e.prototype, "musicToggle", void 0), __decorate([u(cc.Node)], e.prototype, "aboutButton", void 0), __decorate([u(l.default)], e.prototype, "aboutView", void 0), e = __decorate([h], e)
            }(cc.Component);
        i.default = d, cc._RF.pop()
    }, {
        "../About/AboutView": "AboutView",
        "../Analytics/Analytics": "Analytics",
        "../Analytics/AnalyticsHBI": "AnalyticsHBI",
        "../Common/AudioManager": "AudioManager",
        "./AudioToggle": "AudioToggle",
        gsap: 1
    }],
    Shake: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "e403cPA98RGy5lc/9jMLchT", "Shake"), Object.defineProperty(i, "__esModule", {value: !0});
        var l = t("../MathExtra"), c = t("./Perlin"), h = t("gsap"), n = function () {
            function t() {
            }

            return t.generateNoise = function () {
                for (var t = function (t, e, i, n, o, r, s, a) {
                    o /= s, r /= a;
                    var l = c.default.noise(10 * o, 10 * r, .8);
                    return {r: e = i = Math.round(255 * l), g: e, b: i, a: 255}
                }, e = 0; e < 100; e++) {
                    var i = t(0, 1, 1, 0, e, 0, 100, 100).r / 255 - .5;
                    this.xPos.push(i)
                }
                for (e = 0; e < 100; e++) {
                    var n = t(0, 1, 1, 0, 0, e, 100, 100).r / 255 - .5;
                    this.yPos.push(n)
                }
            }, t.shake = function (n) {
                var o = this, r = n.position, s = {prc: 0};
                l.default.randomBetween(1, 10), Math.random(), l.default.randomBetween(1, 10), Math.random();
                if (0 != this.xPos.length || 0 != this.yPos.length) var a = h.TweenMax.to(s, .5, {
                    prc: 100,
                    onUpdate: function () {
                        var t = Math.floor(s.prc), e = r.x + 60 * o.xPos[t] * (1 - a.progress()),
                            i = r.y + 60 * o.yPos[t] * (1 - a.progress());
                        n.x = e, n.y = i
                    },
                    onComplete: function () {
                        n.x = r.x, n.y = r.y
                    }
                })
            }, t.xPos = [], t.yPos = [], t
        }();
        i.default = n, cc._RF.pop()
    }, {"../MathExtra": "MathExtra", "./Perlin": "Perlin", gsap: 1}],
    TimerCountDown: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "64eaeOnngdDfJwjV4kDpcG+", "TimerCountDown"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = t("gsap"), o = t("./Ball"), r = t("../Helpers/Effects/Gradient"), s = t("../Common/AudioManager"),
            a = t("../Helpers/MathExtra"), l = t("./Combo"), c = cc._decorator, h = c.ccclass, u = c.property,
            d = function (t) {
                function e() {
                    var e = null !== t && t.apply(this, arguments) || this;
                    return e.progressBar = null, e.mask = null, e.bar = null, e.outOfTime = null, e.outOfTimeAudio = void 0, e.ball = null, e.combo = null, e.timerDone = !1, e.reactToBounce = !0, e.timesRestarted = 1, e.rgbColors = [], e.roundTime = 0, e.points = 0, e.onBallScore = function () {
                        e.restartTimer()
                    }, e.onTimerUpdate = function () {
                        var t = Math.round(100 * e.countDownTween.progress());
                        e.bar.color = e.rgbColors[t]
                    }, e.onTimerDone = function () {
                        e.outOfTime.active = !0, e.outOfTime.getComponent(cc.Animation).play("OutOfTime"), s.default.playEffect(e.outOfTimeAudio, !1, 1), e.node.emit(i.TIMER_DONE), e.timerDone = !0
                    }, e
                }

                return __extends(e, t), (i = e).prototype.start = function () {
                    var widget = this.progressBar.node.parent.getComponent(cc.Widget);
                    widget.isAlignTop = true;
                    widget.top += sceneManager.topOffset();
                    widget.updateAlignment();
                    this.progressBar.node.height = this.bar.height;
                    this.progressBar.node.width = this.bar.width;
                    this.minDelayToScore = 3.75, this.maxDelayToScore = 7.5, this.changeDelayFactor = .03, this.extraMinDelayByRatio = .5, this.maxRatio = .75, this.minRatio = .5, this.currentRatio = cc.director.getVisibleSize().width / cc.director.getVisibleSize().height, this.ball.node.on(o.default.SCORED, this.onBallScore), this.generateColorGradient(), this.bar.color = this.rgbColors[0], this.startWidth = this.mask.node.width
                }, e.prototype.generateColorGradient = function () {
                    var t;
                    t = r.default.gradientList("#35E841", "#FF7700", 50).concat(r.default.gradientList("#FF7700", "#FF0000", 51));
                    for (var e = 0; e < t.length; e++) {
                        var i = t[e], n = r.default.hexToRgb(i), o = new cc.Color(n[0], n[1], n[2]);
                        this.rgbColors.push(o)
                    }
                }, e.prototype.init = function () {
                    this.timerDone = !1, this.bar.color = this.rgbColors[0]
                }, e.prototype.resetTimer = function () {
                    this.countDownTween && this.countDownTween.kill(), n.TweenMax.to(this.mask.node, 0, {width: this.startWidth})
                }, e.prototype.restartTimer = function () {
                    this.countDownTween && this.countDownTween.kill(), this.timerDone = !1, n.TweenMax.to(this.mask.node, 0, {width: this.startWidth});
                    var t = this.calculateTime();
                    this.roundTime = t, this.countDownTween = n.TweenMax.to(this.mask.node, t, {
                        width: 0,
                        onUpdate: this.onTimerUpdate,
                        onComplete: this.onTimerDone,
                        ease: n.Linear.easeNone
                    }), this.timesRestarted++
                }, e.prototype.reset = function () {
                    n.TweenMax.to(this.mask.node, 0, {width: this.startWidth}), this.timesRestarted = 1, this.points = 0, this.bar.color = this.rgbColors[0], this.countDownTween && (this.countDownTween.progress(0), this.countDownTween.pause())
                }, e.prototype.addPoints = function (t) {
                    this.points += t
                }, e.prototype.calculateTime = function () {
                    var t = a.default.clamp(this.currentRatio, this.minRatio, this.maxRatio) / this.maxRatio - this.minRatio,
                        e = this.minDelayToScore + a.default.lerp(0, this.extraMinDelayByRatio, t);
                    return Math.max(this.maxDelayToScore - this.points * this.changeDelayFactor, e)
                }, e.prototype.getTimeRemaining = function () {
                    var t = -1;
                    return this.countDownTween && (t = this.roundTime * this.countDownTween.progress()), t
                }, e.prototype.pause = function () {
                    this.countDownTween && this.countDownTween.pause()
                }, e.prototype.resume = function () {
                    this.countDownTween && this.countDownTween.resume()
                }, e.prototype.show = function () {
                    this.node.opacity = 255
                }, e.prototype.hide = function () {
                    this.node.opacity = 0
                }, e.prototype.stopAnimation = function () {
                    this.outOfTime.getComponent(cc.Animation).play("OutOfTimeHidden")
                }, e.TIMER_DONE = "TIMER_DONE", __decorate([u(cc.ProgressBar)], e.prototype, "progressBar", void 0), __decorate([u(cc.Mask)], e.prototype, "mask", void 0), __decorate([u(cc.Node)], e.prototype, "bar", void 0), __decorate([u(cc.Node)], e.prototype, "outOfTime", void 0), __decorate([u(cc.AudioClip)], e.prototype, "outOfTimeAudio", void 0), __decorate([u(o.default)], e.prototype, "ball", void 0), __decorate([u(l.default)], e.prototype, "combo", void 0), e = i = __decorate([h], e);
                var i
            }(cc.Component);
        i.default = d, cc._RF.pop()
    }, {
        "../Common/AudioManager": "AudioManager",
        "../Helpers/Effects/Gradient": "Gradient",
        "../Helpers/MathExtra": "MathExtra",
        "./Ball": "Ball",
        "./Combo": "Combo",
        gsap: 1
    }],
    UIButton: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "aaf26afgM5FuL4SLEaS+F9R", "UIButton"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = t("gsap"), o = t("../Common/AudioManager"), r = cc._decorator, s = r.ccclass, a = r.property,
            l = function (t) {
                function e() {
                    var e = null !== t && t.apply(this, arguments) || this;
                    return e.audioStart = null, e.audioEnd = null, e.startScale = 1, e.onButtonTouchStart = function () {
                        var t = e.startScale + .1;
                        n.TweenMax.to(e.node, .02, {
                            scale: t,
                            ease: n.Quad.easeOut
                        }), e.audioStart && o.default.playEffect(e.audioStart, !1, 1)
                    }, e.onButtonTouchEnd = function () {
                        var t = e.startScale;
                        n.TweenMax.to(e.node, .1, {
                            scale: t,
                            ease: n.Quad.easeOut
                        }), e.audioEnd && o.default.playEffect(e.audioEnd, !1, 1)
                    }, e.onButtonTouchCancel = function () {
                        var t = e.startScale;
                        n.TweenMax.to(e.node, .1, {scale: t, ease: n.Quad.easeOut})
                    }, e
                }

                return __extends(e, t), e.prototype.start = function () {
                    this.startScale = this.node.scale, this.addEventListerners()
                }, e.prototype.onEnabled = function () {
                    this.addEventListerners()
                }, e.prototype.onDisabled = function () {
                    this.removeEventListerners()
                }, e.prototype.addEventListerners = function () {
                    this.node.on(cc.Node.EventType.TOUCH_START, this.onButtonTouchStart), this.node.on(cc.Node.EventType.TOUCH_END, this.onButtonTouchEnd), this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.onButtonTouchCancel)
                }, e.prototype.removeEventListerners = function () {
                    this.node.off(cc.Node.EventType.TOUCH_START, this.onButtonTouchStart), this.node.off(cc.Node.EventType.TOUCH_END, this.onButtonTouchEnd), this.node.off(cc.Node.EventType.TOUCH_CANCEL, this.onButtonTouchCancel)
                }, __decorate([a(cc.AudioClip)], e.prototype, "audioStart", void 0), __decorate([a(cc.AudioClip)], e.prototype, "audioEnd", void 0), e = __decorate([s], e)
            }(cc.Component);
        i.default = l, cc._RF.pop()
    }, {"../Common/AudioManager": "AudioManager", gsap: 1}],
    VectorExtra: [function (t, e, i) {
        "use strict";
        cc._RF.push(e, "f83b7+O3+FMb4sP1VQ0DaYo", "VectorExtra"), Object.defineProperty(i, "__esModule", {value: !0});
        var n = function () {
            function t() {
            }

            return t.distance = function (t, e) {
                var i = t.x - e.x, n = t.y - e.y;
                return Math.sqrt(i * i + n * n)
            }, t.rotateAroundPoint = function (t, e, i) {
                var n = i * (Math.PI / 180), o = Math.cos(n), r = Math.sin(n), s = new cc.Vec2(0, 0);
                return s.x = o * (t.x - e.x) - r * (t.y - e.y) + e.x, s.y = r * (t.x - e.x) + o * (t.y - e.y) + e.y, s
            }, t.rotationFromVector = function (t) {
                var e = Math.atan2(t.y, t.x) / (2 * Math.PI);
                return 360 * (0 < e ? e : 2 * Math.PI + e) / (2 * Math.PI)
            }, t
        }();
        i.default = n, cc._RF.pop()
    }, {}],
    launch: [function (require, module, exports) {
        "use strict";
        cc._RF.push(module, "0299dKuHNxKUptRgQG/kRLG", "launch");
        Object.defineProperty(exports, "__esModule", {value: true});
        var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
        var Launch = function (_super) {
            __extends(Launch, _super);

            function Launch() {
                return null !== _super && _super.apply(this, arguments) || this;
            }

            Launch.prototype.start = function () {
                cc.director.loadScene("Game", function () {
                });
            };
            Launch = __decorate([ccclass], Launch);
            return Launch;
        }(cc.Component);
        exports.default = Launch;
        cc._RF.pop();
    }, {}]
}, {}, ["AboutView", "Analytics", "AnalyticsHBI", "BackgroundMusicLoader", "CameraController", "AudioManager", "ScreenShot", "GameMain", "GameOverScreen", "GameSettings", "FaceBookShare", "HighScore", "Ball", "Basket", "ClickableArea", "ColliderTypes", "Combo", "ComboCountText", "Crowd", "CrowdMember", "Floor", "TimerCountDown", "ArrayExtra", "Gradient", "Perlin", "Shake", "MathExtra", "ParticlesExtra", "VectorExtra", "LeaderBoardInvite", "LeaderBoardSection", "LeaderBoardStartView", "OuterNetCollider", "PauseButton", "PauseView", "PhysicsSettings", "AudioToggle", "SettingsMenu", "UIButton", "launch"]);